Python 通过Json获取页面内容

Python 通过Json获取页面内容,python,json,mediawiki,mediawiki-api,Python,Json,Mediawiki,Mediawiki Api,链接: 从上面的json文件中,我想得到“*”的值。我正在使用python并设置了请求。通常,如果在获取页面内容之前不需要获取页面id,我可以这样做。但事实并非如此,我遇到了一些麻烦,需要一些帮助。该页面实际上不是json,而是json在html中的表示。要请求json,请删除url末尾的“fm” 在这段代码中,我将使用urllib2和json包将json加载到字典中,然后访问*项 url = "http://creepypasta.wikia.com/api.php?%20action=que

链接:


从上面的json文件中,我想得到“*”的值。我正在使用python并设置了请求。通常,如果在获取页面内容之前不需要获取页面id,我可以这样做。但事实并非如此,我遇到了一些麻烦,需要一些帮助。

该页面实际上不是json,而是json在html中的表示。要请求json,请删除url末尾的“fm”

在这段代码中,我将使用urllib2和json包将json加载到字典中,然后访问*项

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]['*']

如果您不知道要查看的页码,请考虑找到的方法(下面复制):


我添加fm是为了给这里的用户提供一个结构化的json视图。我的问题是我不知道我试图获取内容的页面的id。只是它的名字。我已经更新了我的答案来说明这一点。请让我知道这是否有帮助。如果我很了解你,它与MediaWiki并没有真正的联系。这相当于“如何获取JSON的一些子树”。如果是,请删除令人困惑的MediaWiki标记。
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]['*']