【发布时间】:2021-04-13 06:04:45
【问题描述】:
我想使用 for 循环提取每个字典的第二个键。但是,字典嵌套在一个列表中(见下文)。另外,请注意第二个键并不总是相同的。
video_Ids = [
{'kind': 'youtube#playlist',
'playlistId': 'PLt1O6njsCRR-D_1jUAhJrrDZyYL6OZSGa'},
{'kind': 'youtube#playlist',
'playlistId': 'PLt1O6njsCRR_8oi7E6qnPWGQbn8NoQ6sG'},
{'kind': 'youtube#channel', 'channelId': 'UC4i5R6-IW05iiU8Vu__vppA'},
{'kind': 'youtube#video', 'videoId': 'XquM0L2WUio'},
{'kind': 'youtube#video', 'videoId': '05yrGVZ96b4'}
]
我尝试了不同的方法,但到目前为止都没有奏效。这是我的最后一次尝试:删除要留下的第一个键以及包含第二个键的列表。
for i in video_Ids:
if video_Ids["kind"] == "youtube#video":
del video_Ids[i]["kind"]
elif video_Ids[i]["kind"] == "youtube#playlist":
del video_Ids[i]["kind"]
elif video_Ids[i]["kind"] == "youtube#channel":
del video_Ids[i]["kind"]
这是我收到的信息:
TypeError: list indices must be integers or slices, not str
我尽了最大的努力,现在卡住了几天。非常感谢任何帮助,谢谢。
【问题讨论】:
-
在您提供的代码中
i是字典而不是数字(不是索引),要解决此问题,您可以执行range(len(video_Ids))。
标签: python python-3.x dictionary for-loop nested