Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中遍历json数组_Python_Json_Django_Urllib - Fatal编程技术网

在python中遍历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

我使用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))
我试图找回“原创”的价值,但我很难做到这一点。 我可以做
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的支持