-4

我试图使用 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_IDandTitle时,我收到了这个错误。

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

单独执行时的输出:

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

谁能帮助我并告诉我如何在一个命令中获得此输出。

4

1 回答 1

0

当您收到评论时 - 您无法一步从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'])
于 2021-12-09T13:19:32.923 回答