在python中遍历json数组
我使用urllib.request.urlopen获得一个JSON响应,如下所示:在python中遍历json数组,python,json,django,urllib,Python,Json,Django,Urllib,我使用urllib.request.urlopen获得一个JSON响应,如下所示: { "batchcomplete": "", "query": { "pages": { "76972": { "pageid": 76972, "ns": 0, "title": "Title", "thumbnail": { "original": "http
{
"batchcomplete": "",
"query": {
"pages": {
"76972": {
"pageid": 76972,
"ns": 0,
"title": "Title",
"thumbnail": {
"original": "https://linktofile.com"
}
}
}
}
获取响应的相关代码:
response = urllib.request.urlopen("https://example.com?title="+object.title)
data = response.read()
encoding = response.info().get_content_charset('utf-8')
json_object = json.loads(data.decode(encoding))
我试图找回“原创”的价值,但我很难做到这一点。
我可以做print(json_对象['query']['pages']
但是一旦我做print(json_对象['query']['pages'][0]
我就会遇到一个关键错误:0
使用python如何检索original
的值?请执行以下操作:
my_content = json_object['query']['pages']['76972']['thumbnail']['original']
原因是,只有当您将列表作为对象时,才需要将索引
称为[0]
。但是在您的情况下,每个项目都是dict
类型。您需要指定键
,而不是索引
如果数字是动态的,您可以执行以下操作:
page_content = json_object['query']['pages']
for content in page_content.values():
my_content = content['thumbnail']['original']
其中,my\u content
是必需的信息。请改为:
my_content = json_object['query']['pages']['76972']['thumbnail']['original']
原因是,只有当您将列表作为对象时,才需要将索引
称为[0]
。但是在您的情况下,每个项目都是dict
类型。您需要指定键
,而不是索引
如果数字是动态的,您可以执行以下操作:
page_content = json_object['query']['pages']
for content in page_content.values():
my_content = content['thumbnail']['original']
其中,
my\u content
是必需的信息。Doing[0]
正在查找不存在的密钥。假设您不总是知道页面的密钥,请尝试以下操作:
pages = json_object['query']['pages']
for key, value in pages.items(): # this is python3
original = value['thumbnail']['original']
否则,如果您确实知道(看起来是什么)pageid,您可以简单地通过按键抓取它:
json_object['query']['pages']['76972']['thumbnail']['original']
执行
[0]
是在查找不存在的密钥。如果您不总是知道页面的密钥是什么,请尝试以下操作:
pages = json_object['query']['pages']
for key, value in pages.items(): # this is python3
original = value['thumbnail']['original']
否则,如果您确实知道(看起来是什么)pageid,您可以简单地通过按键抓取它:
json_object['query']['pages']['76972']['thumbnail']['original']
您可以迭代关键点:
for page_no in json_object['query']['pages']:
page_data = json_object['query']['pages'][page_no]
您可以迭代关键点:
for page_no in json_object['query']['pages']:
page_data = json_object['query']['pages'][page_no]
这个数字是动态的,所以很遗憾我不能这样做。这个可以用于python2吗?是的。我正在使用python2.7,它受python2.7的支持。这个数字是动态的,所以很遗憾我不能这样做。这个可以用于python2吗?是的。我正在使用python2.7,它受python2.7的支持