字符串索引必须是整数 json 文件

string indices must be integers json file

我试图使用 API 从 YouTube 获取数据,但愿我做到了,但是在尝试解析文件时出现错误,字符串索引必须是整数。

以下是我面临的错误...

TypeError                                 
Traceback (most recent call last)
<ipython-input-48-213e690c5b60> in <module>----> 1 response['items'][0]['id']['videoId']['snippet']['title']

TypeError: string indices must be integers

实际上,我试图从频道中获取第一个视频所以我输入了 response['items'][0],我很容易就得到了...但是当我试图解析 Video_IDTitle 那个视频我收到这个错误。

但是,当我分别执行它们时,我得到了输出。

单独执行时输出:

response['items'][0]['id']['videoId']
'gzJGqML4j5k'

response['items'][0]['snippet']['title']
'Roles And Responsibilities Of An AI Engineer'

一起执行输出:

response['items'][0]['id']['videoId']['snippet']['title']
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-50-213e690c5b60> in <module>
----> 1 response['items'][0]['id']['videoId']['snippet']['title']

TypeError: string indices must be integers

任何人都可以帮助我并告诉我如何在一个命令中获得此输出。

正如您在评论中看到的那样 - 您无法一步从 JSON/dictionary 中获取两个值。

您必须单独获取每个值并将两者合而为一print()

更具可读性:

val1 = response['items'][0]['id']['videoId']
val2 = response['items'][0]['snippet']['title']

print(val1, val2)

相同但在一行中:

print(response['items'][0]['id']['videoId'], response['items'][0]['snippet']['title'])

或仍然可读的简短版本:

item = response['items'][0]

print(item['id']['videoId'], item['snippet']['title'])

它与 for-loop

一起工作
for item in response['items']:
    print(item['id']['videoId'], item['snippet']['title'])