我是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”?:
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()
答案 0 :(得分:0)
我认为您的脚本唯一的问题是还有一个未包含的级别,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'] + ',')