使用Python访问嵌套的json字典

2024-10-03 09:16:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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"
}
}
}
}
]

我在尝试使用下面的代码访问它时被卡住了。有什么想法吗,我怎么修改脚本来提取“视频ID”?地址:

import json

f = open('out.csv','w')

with open('Pirates3.json',encoding='UTF-8') as json_data:
    data = json.load(json_data)
for r in data ['items']:
    resourceId = r ['resourceId']
    f.write(resourceId ['videoId']+',')

f.close()

Tags: httpscomjsonurldatayoutubewidthjpg
1条回答
网友
1楼 · 发布于 2024-10-03 09:16:05

我认为您的脚本唯一的问题是,在rresourceId键之间还有一个未包含的级别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'] + ',')

相关问题 更多 >