Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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 - Fatal编程技术网

使用Python访问嵌套json字典

使用Python访问嵌套json字典,python,json,Python,Json,我是Python的初学者,有以下问题:我试图从下面的示例json文件中访问“videoId” { "kind": "youtube#playlistItemListResponse", "etag": "\"gMxXHe-zinKdE9lTnzKu8vjcmDI/gdfK_92q5yW4RaDjJ88_b_T00Jg\"", "pageInfo": { "totalResults": 14, "resultsPerPage": 50 }, "items": [ { "kind": "youtub

我是Python的初学者,有以下问题:我试图从下面的示例json文件中访问“videoId”

{
"kind": "youtube#playlistItemListResponse",
"etag": "\"gMxXHe-zinKdE9lTnzKu8vjcmDI/gdfK_92q5yW4RaDjJ88_b_T00Jg\"",
"pageInfo": {
"totalResults": 14,
"resultsPerPage": 50
},
"items": [
{
"kind": "youtube#playlistItem",
"etag": "\"gMxXHe-zinKdE9lTnzKu8vjcmDI/1GLB-y5RITVbkQVc1ykwFXO5rb8\"",
"id":"UEw0dUFCODFmSmpiR0hHQWRHQXNHTlh0S1lWOVBhWmtkNy41NkI0NEY2RDEwNTU3Q0M2",
"snippet": {
"publishedAt": "2016-09-09T07:28:27.000Z",
"channelId": "UC8_MMK_ePSIQf0cRvX63RkQ",
"title": "Księżniczka do wzięcia -  RODZINA PIRATÓW odc. 27 (PL)",
"description": "Rodzina piratów to serial animowany opowiadający o rodzinie piratów, która mieszka na wyspie wraz z innymi mieszkańcami. Co dzień pirat Wiktor Mac Bernic poszukuje skarbów, które są ukryte na wyspie. Jednak przeszkadza mu w tym jego sąsiad Albert Derekin wraz z jego rodziną. Na dodatek jego syn jest zakochany w Krewetce, czyli córce Wiktora.",
"thumbnails": {
 "default": {
  "url": "https://i.ytimg.com/vi/slz8q6v091Y/default.jpg",
  "width": 120,
  "height": 90
 },
 "medium": {
  "url": "https://i.ytimg.com/vi/slz8q6v091Y/mqdefault.jpg",
  "width": 320,
  "height": 180
 },
 "high": {
  "url": "https://i.ytimg.com/vi/slz8q6v091Y/hqdefault.jpg",
  "width": 480,
  "height": 360
 },
 "standard": {
  "url": "https://i.ytimg.com/vi/slz8q6v091Y/sddefault.jpg",
  "width": 640,
  "height": 480
 }
},
"channelTitle": "RODZINA PIRATÓW",
"playlistId": "PL4uAB81fJjbGHGAdGAsGNXtKYV9PaZkd7",
"position": 0,
"resourceId": {
 "kind": "youtube#video",
 "videoId": "slz8q6v091Y"
}
}
}
}
]
我在尝试使用下面的代码访问它时被卡住了。任何想法,我如何修改脚本以提取“VideoID”?:


我认为您的脚本唯一的问题是,在
r
resourceId
键之间,还有一个级别没有包含,这是另一个级别
snippet
。因此,我认为这将起作用:

import json

with open('Pirates3.json', encoding='UTF-8') as json_data:
    data = json.load(json_data)

with open('out.csv', 'w') as f:
    for r in data['items']:
        f.write(r['snippet']['resourceId']['videoId'] + ',')

发布Python代码时,需要重新生成缩进。否则,您将在人们为您查看的代码中引入新的错误。您的json没有正确关闭…只是为了记录:您正在处理的是一个普通的Python
dict
——它是从json加载的事实完全不相关。
import json

with open('Pirates3.json', encoding='UTF-8') as json_data:
    data = json.load(json_data)

with open('out.csv', 'w') as f:
    for r in data['items']:
        f.write(r['snippet']['resourceId']['videoId'] + ',')