python::迭代嵌套的JSON结果

2024-10-03 06:19:10 发布

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

迭代JSONresults有时会让人很困惑。 假设我有一个function这样:

def get_playlist_owner_ids(query):

    results = sp.search(q=query, type='playlist')
    id_ = results['playlists']['items'][0]['owner']['id']
    return (id_)

我可以把id_拿来,它很有用。在

但是我如何使用for i in x循环来迭代returnALLids_?在


Tags: ididssearchgetdeftypeitemsfunction
3条回答
results['playlists']['items'][0]['owner']['id']
                              ^___ this is a list index

因此:

^{pr2}$

为了使内容更具可读性,通常可以使用中间变量。在

playlist_items = results['playlists']['items']
for item in playlist_items:
    owner = item['owner']
    print(owner['id'])

这是假设我只是根据你展示的内容正确地猜测了你的对象的结构。不过,希望这些例子能让你更好地思考如何将复杂的结构分解成有意义的块。在

您可以在results['playlists']['items']上迭代,或者更好地使用列表理解:

def get_playlist_owner_ids(query):

    results = sp.search(q=query, type='playlist')
    return [x['owner']['id'] for x in results['playlists']['items']]

这个怎么样?你可以使用生成器来实现你的目标

def get_playlist_owner_ids(query):
    results = sp.search(q=query, type='playlist')
    for item in results['playlists']['items']:
        yield item['owner']['id']

相关问题 更多 >