2013-12-24 138 views
-1

鏈接頁面內容:http://creepypasta.wikia.com/api.php?%20action=query&prop=revisions&titles=Main_Page&rvprop=content&indexpageids=1&format=jsonfm獲得通過JSON

從JSON文件上面我想要得到的值「*」。我使用Python並有請求設置。通常,如果我不需要在獲取頁面內容之前獲取頁面ID,我可以這樣做。但是,如果看不到,我會遇到一些麻煩,需要一點幫助。

+0

如果我理解你很好,這是不是真的對於MediaWiki。這就是「如何獲得JSON的一些子樹」。如果是這樣,請刪除混淆的MediaWiki標籤。 – skalee

回答

0

該頁面實際上並不是json - 它是html中json的表示形式。要請求json,請移除網址末尾的'fm'。

在這段代碼中,我將使用urllib2和json包將json加載到字典中,然後訪問* item。

url = "http://creepypasta.wikia.com/api.php?%20action=query&prop=revisions&titles=Main_Page&rvprop=content&indexpageids=1&format=json" 
j = json.load(urllib2.urlopen(url)) 
value = j['query']['pages']['22491']['revisions'][0]['*'] 

如果你不知道該看什麼網頁上,可以考慮該方法發現here(下面複製):

def _finditem(obj, key): 
    if key in obj: return obj[key] 
    for k, v in obj.items(): 
     if isinstance(v,dict): 
      item = _finditem(v, key) 
      if item is not None: 
       return item 

_finditem(j,'revisions')[0]['*'] 
+0

我添加了fm爲用戶提供了一個結構化的json視圖。我的問題是,我不知道我試圖獲取內容的頁面的ID。只是它的名字。 – cataclysmicpinkiepie

+0

我已經更新了我的答案來解決這個問題。請讓我知道這可不可以幫你。 – nfazzio