如何从这个JSON输出中提取数据?

2024-04-25 03:44:40 发布

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

我编写了一个pythonyt脚本来获取频道和播放列表信息。 我的Python脚本有以下JSON输出:

{'etag': '"p4VTdlkQv3HQeTEaXgvLePAydmU/ptsLJl-r_dDEzokkl3Kso2SZgL0"',
 'items': [{'etag': '"p4VTdlkQv3HQeTEaXgvLePAydmU/9F4RmINu4drT-fTZjviHFXj3Yak"',
            'id': 'PLejO9z7yhQOxjONeDVWaAy3kX3tEcImCR',
            'kind': 'youtube#playlist',
            'snippet': {'channelId': 'UC_ANPr8IkWibKlKhmi_-H1g',
                        'channelTitle': 'haramaininfo',
                        'description': '',
                        'localized': {'description': '',
                                      'title': 'Eid Takbeerat 1440'},
                        'publishedAt': '2019-06-04T06:30:13.000Z',
                        'thumbnails': {'default': {'height': 90,
                                                   'url': 'https://i.ytimg.com/vi/HcEZMA0KJDg/default.jpg',
                                                   'width': 120},
                                       'high': {'height': 360,
                                                'url': 'https://i.ytimg.com/vi/HcEZMA0KJDg/hqdefault.jpg',
                                                'width': 480},
                                       'maxres': {'height': 720,
                                                  'url': 'https://i.ytimg.com/vi/HcEZMA0KJDg/maxresdefault.jpg',
                                                  'width': 1280},
                                       'medium': {'height': 180,
                                                  'url': 'https://i.ytimg.com/vi/HcEZMA0KJDg/mqdefault.jpg',
                                                  'width': 320},
                                       'standard': {'height': 480,
                                                    'url': 'https://i.ytimg.com/vi/HcEZMA0KJDg/sddefault.jpg',
                                                    'width': 640}},
                        'title': 'Eid Takbeerat 1440'}},
           {'etag': '"p4VTdlkQv3HQeTEaXgvLePAydmU/0vwPehiWj-5tfpY0dosabZkUwbI"',
            'id': 'PLejO9z7yhQOwt7OKSMVLdAe4jeYDpZNJC',
            'kind': 'youtube#playlist',
            'snippet': {'channelId': 'UC_ANPr8IkWibKlKhmi_-H1g',
                        'channelTitle': 'haramaininfo',
                        'description': '',
                        'localized': {'description': '',
                                      'title': 'Makkah Taraweeh 1440 (2019)'},
                        'publishedAt': '2019-04-27T13:28:47.000Z',
                        'thumbnails': {'default': {'height': 90,
                                                   'url': 'https://i.ytimg.com/vi/h9pn4qQqJTU/default.jpg',
                                                   'width': 120},
                                       'high': {'height': 360,
                                                'url': 'https://i.ytimg.com/vi/h9pn4qQqJTU/hqdefault.jpg',
                                                'width': 480},
                                       'medium': {'height': 180,
                                                  'url': 'https://i.ytimg.com/vi/h9pn4qQqJTU/mqdefault.jpg',
                                                  'width': 320}},
                        'title': 'Makkah Taraweeh 1440 (2019)'}},
           {'etag': '"p4VTdlkQv3HQeTEaXgvLePAydmU/qUNlGZC0dbvnetbNDH5EBW_6yLA"',
            'id': 'PLejO9z7yhQOzJ068ZMLd0Zub_FOrGJ82y',
            'kind': 'youtube#playlist',
            'snippet': {'channelId': 'UC_ANPr8IkWibKlKhmi_-H1g',
                        'channelTitle': 'haramaininfo',
                        'description': '',
                        'localized': {'description': '',
                                      'title': 'Madeenah Taraweeh 1440 (2019)'},
                        'publishedAt': '2019-04-27T13:28:20.000Z',
                        'thumbnails': {'default': {'height': 90,
                                                   'url': 'https://i.ytimg.com/vi/CWNlyYtUTVE/default.jpg',
                                                   'width': 120},
                                       'high': {'height': 360,
                                                'url': 'https://i.ytimg.com/vi/CWNlyYtUTVE/hqdefault.jpg',
                                                'width': 480},
                                       'maxres': {'height': 720,
                                                  'url': 'https://i.ytimg.com/vi/CWNlyYtUTVE/maxresdefault.jpg',
                                                  'width': 1280},
                                       'medium': {'height': 180,
                                                  'url': 'https://i.ytimg.com/vi/CWNlyYtUTVE/mqdefault.jpg',
                                                  'width': 320},
                                       'standard': {'height': 480,
                                                    'url': 'https://i.ytimg.com/vi/CWNlyYtUTVE/sddefault.jpg',
                                                    'width': 640}},
                        'title': 'Madeenah Taraweeh 1440 (2019)'}},
           {'etag': '"p4VTdlkQv3HQeTEaXgvLePAydmU/9ImuAJ6f9CNNHDLCZ7WY80GeT1g"',
            'id': 'PLejO9z7yhQOx8ZrJYJ3o5zckygwvtUb1R',
            'kind': 'youtube#playlist',
            'snippet': {'channelId': 'UC_ANPr8IkWibKlKhmi_-H1g',
                        'channelTitle': 'haramaininfo',
                        'description': '',
                        'localized': {'description': '',
                                      'title': 'Madeenah Witr 1440 (2019)'},
                        'publishedAt': '2019-04-27T13:27:34.000Z',
                        'thumbnails': {'default': {'height': 90,
                                                   'url': 'https://i.ytimg.com/vi/Qjyd94QSutw/default.jpg',
                                                   'width': 120},
                                       'high': {'height': 360,
                                                'url': 'https://i.ytimg.com/vi/Qjyd94QSutw/hqdefault.jpg',
                                                'width': 480},
                                       'maxres': {'height': 720,
                                                  'url': 'https://i.ytimg.com/vi/Qjyd94QSutw/maxresdefault.jpg',
                                                  'width': 1280},
                                       'medium': {'height': 180,
                                                  'url': 'https://i.ytimg.com/vi/Qjyd94QSutw/mqdefault.jpg',
                                                  'width': 320},
                                       'standard': {'height': 480,
                                                    'url': 'https://i.ytimg.com/vi/Qjyd94QSutw/sddefault.jpg',
                                                    'width': 640}},
                        'title': 'Madeenah Witr 1440 (2019)'}},
           {'etag': '"p4VTdlkQv3HQeTEaXgvLePAydmU/tghRJYmcElUo0PCD23-bkBwOcZ4"',
            'id': 'PLejO9z7yhQOxx6XqB6DLvQd0-IDpb299H',
            'kind': 'youtube#playlist',
            'snippet': {'channelId': 'UC_ANPr8IkWibKlKhmi_-H1g',
                        'channelTitle': 'haramaininfo',
                        'description': '',
                        'localized': {'description': '',
                                      'title': 'Makkah Witr 1440 (2019)'},
                        'publishedAt': '2019-04-27T13:27:12.000Z',
                        'thumbnails': {'default': {'height': 90,
                                                   'url': 'https://i.ytimg.com/vi/yjLrG4LVv3Q/default.jpg',
                                                   'width': 120},
                                       'high': {'height': 360,
                                                'url': 'https://i.ytimg.com/vi/yjLrG4LVv3Q/hqdefault.jpg',
                                                'width': 480},
                                       'maxres': {'height': 720,
                                                  'url': 'https://i.ytimg.com/vi/yjLrG4LVv3Q/maxresdefault.jpg',
                                                  'width': 1280},
                                       'medium': {'height': 180,
                                                  'url': 'https://i.ytimg.com/vi/yjLrG4LVv3Q/mqdefault.jpg',
                                                  'width': 320},
                                       'standard': {'height': 480,
                                                    'url': 'https://i.ytimg.com/vi/yjLrG4LVv3Q/sddefault.jpg',
                                                    'width': 640}},
                        'title': 'Makkah Witr 1440 (2019)'}}],
 'kind': 'youtube#playlistListResponse',
 'nextPageToken': 'CAUQAA',
 'pageInfo': {'resultsPerPage': 5, 'totalResults': 137}}

我用Python编写了以下代码来提取某些数据:

pprint.pprint(jdata)

for item in jdata:
    print("Title: {}\nid: {}\nurl: {}\n".format(item['title'], item['id'], item['url']))

但这是我运行代码时返回的错误:

    print("Title: {}\nid: {}\nurl: {}\n".format(item['title'], item['id'], item['url'])) 
TypeError: string indices must be integers, not str

如何正确提取数据?你知道吗


Tags: httpscomiddefaulturltitledescriptionitem
1条回答
网友
1楼 · 发布于 2024-04-25 03:44:40

这是一个嵌套的dict,除了id之外,其他两个(titleurl)是snippet的直接/间接子键,它本身嵌套在items数组中。因此,我们应该循环这个数组并深入到snippet树中,以便能够访问它们的值。而且,url可以具有defaultstandardhighmaxresmedium的值。下面的代码片段显示了url键的default值。如果要访问任何其他分辨率类型的值,则必须相应地进行修改。你知道吗

In [18]: for item in json_string['items']:
    ...:     print("Title: {}\nid: {}\nurl: {}\n".format(item['snippet']['title'], item['id'], item['snippet']['thumbna
    ...: ils']['default']['url']))
    ...:
    ...:
Title: Eid Takbeerat 1440
id: PLejO9z7yhQOxjONeDVWaAy3kX3tEcImCR
url: https://i.ytimg.com/vi/HcEZMA0KJDg/default.jpg

Title: Makkah Taraweeh 1440 (2019)
id: PLejO9z7yhQOwt7OKSMVLdAe4jeYDpZNJC
url: https://i.ytimg.com/vi/h9pn4qQqJTU/default.jpg

Title: Madeenah Taraweeh 1440 (2019)
id: PLejO9z7yhQOzJ068ZMLd0Zub_FOrGJ82y
url: https://i.ytimg.com/vi/CWNlyYtUTVE/default.jpg

Title: Madeenah Witr 1440 (2019)
id: PLejO9z7yhQOx8ZrJYJ3o5zckygwvtUb1R
url: https://i.ytimg.com/vi/Qjyd94QSutw/default.jpg

Title: Makkah Witr 1440 (2019)
id: PLejO9z7yhQOxx6XqB6DLvQd0-IDpb299H
url: https://i.ytimg.com/vi/yjLrG4LVv3Q/default.jpg

相关问题 更多 >