遍历 python 中的 json 数组
Traversing json array in python
我正在使用 urllib.request.urlopen 获得如下所示的 JSON 响应:
{
"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))
我正在尝试检索 "original" 的值,但我很难到达那里。
我可以做 print(json_object['query']['pages']
但是一旦我做 print(json_object['query']['pages'][0]
我 运行 进入 KeyError: 0.
我怎样才能使用 python 检索 original
的值?
改为这样做:
my_content = json_object['query']['pages']['76972']['thumbnail']['original']
原因是,只有当你有列表作为对象时,你才需要将 index
提及为 [0]
。但在您的情况下,每个项目都是 dict
类型。您需要指定 key
而不是 index
如果数字是动态的,你可以这样做:
page_content = json_object['query']['pages']
for content in page_content.values():
my_content = content['thumbnail']['original']
其中 my_content
是必需的信息。
[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]
我正在使用 urllib.request.urlopen 获得如下所示的 JSON 响应:
{
"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))
我正在尝试检索 "original" 的值,但我很难到达那里。
我可以做 print(json_object['query']['pages']
但是一旦我做 print(json_object['query']['pages'][0]
我 运行 进入 KeyError: 0.
我怎样才能使用 python 检索 original
的值?
改为这样做:
my_content = json_object['query']['pages']['76972']['thumbnail']['original']
原因是,只有当你有列表作为对象时,你才需要将 index
提及为 [0]
。但在您的情况下,每个项目都是 dict
类型。您需要指定 key
而不是 index
如果数字是动态的,你可以这样做:
page_content = json_object['query']['pages']
for content in page_content.values():
my_content = content['thumbnail']['original']
其中 my_content
是必需的信息。
[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]