【问题标题】:How to get all values from list inside a dictionary, I need to get title for every item如何从字典中的列表中获取所有值,我需要获取每个项目的标题
【发布时间】:2021-05-20 09:47:09
【问题描述】:

如何从字典中的列表中获取所有值?我需要为每个项目获取标题。

{'results': [{'id': 654959, 'title': 'Pasta With Tuna', 'image': 'https://spoonacular.com/recipeImages/654959-312x231.jpg', 'imageType': 'jpg'}, {'id': 511728, 'title': 'Pasta Margherita', 'image': 'https://spoonacular.com/recipeImages/511728-312x231.jpg', 'imageType': 'jpg'}, {'id': 654812, 'title': 'Pasta and Seafood', 'image': 'https://spoonacular.com/recipeImages/654812-312x231.jpg', 'imageType': 'jpg'}, {'id': 654857, 'title': 'Pasta On The Border', 'image': 'https://spoonacular.com/recipeImages/654857-312x231.jpg', 'imageType': 'jpg'}, {'id': 654883, 'title': 'Pasta Vegetable Soup', 'image': 'https://spoonacular.com/recipeImages/654883-312x231.jpg', 'imageType': 'jpg'}, {'id': 654928, 'title': 'Pasta With Italian Sausage', 'image': 'https://spoonacular.com/recipeImages/654928-312x231.jpg', 'imageType': 'jpg'}, {'id': 654926, 'title': 'Pasta With Gorgonzola Sauce', 'image': 'https://spoonacular.com/recipeImages/654926-312x231.jpg', 'imageType': 'jpg'}, {'id': 654944, 'title': 'Pasta With Salmon Cream Sauce', 'image': 'https://spoonacular.com/recipeImages/654944-312x231.jpg', 'imageType': 'jpg'}, {'id': 654905, 'title': 'Pasta With Chickpeas and Kale', 'image': 'https://spoonacular.com/recipeImages/654905-312x231.jpg', 'imageType': 'jpg'}, {'id': 654901, 'title': 'Pasta With Chicken and Broccoli', 'image': 'https://spoonacular.com/recipeImages/654901-312x231.jpg', 'imageType': 'jpg'}], 'offset': 0, 'number': 10, 'totalResults': 210}

【问题讨论】:

  • 您能否更清楚地了解您遇到的问题以及您想要的输出...标题列表?以 id 为键、标题为值的新字典?
  • 从 .. 开始。您尝试过简单的 for 循环吗?可能不是最干净的外观和/或最有效的,但仍然是一个开始......到目前为止你尝试过什么?
  • 我只是想获取每个“标题”的列表

标签: python api dictionary flask


【解决方案1】:

您可以使用list comprehension

d = {'results': [{'id': 654959, 'title': 'Pasta With Tuna', 'image': 'https://spoonacular.com/recipeImages/654959-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 511728, 'title': 'Pasta Margherita', 'image': 'https://spoonacular.com/recipeImages/511728-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 654812, 'title': 'Pasta and Seafood', 'image': 'https://spoonacular.com/recipeImages/654812-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 654857, 'title': 'Pasta On The Border', 'image': 'https://spoonacular.com/recipeImages/654857-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 654883, 'title': 'Pasta Vegetable Soup', 'image': 'https://spoonacular.com/recipeImages/654883-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 654928, 'title': 'Pasta With Italian Sausage', 'image': 'https://spoonacular.com/recipeImages/654928-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 654926, 'title': 'Pasta With Gorgonzola Sauce', 'image': 'https://spoonacular.com/recipeImages/654926-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 654944, 'title': 'Pasta With Salmon Cream Sauce', 'image': 'https://spoonacular.com/recipeImages/654944-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 654905, 'title': 'Pasta With Chickpeas and Kale', 'image': 'https://spoonacular.com/recipeImages/654905-312x231.jpg', 'imageType': 'jpg'},
                 {'id': 654901, 'title': 'Pasta With Chicken and Broccoli', 'image': 'https://spoonacular.com/recipeImages/654901-312x231.jpg', 'imageType': 'jpg'}],
 'offset': 0, 'number': 10, 'totalResults': 210}

titles = [i['title'] for i in d['results']]
print(titles)

输出:

['Pasta With Tuna', 'Pasta Margherita', 'Pasta and Seafood', 'Pasta On The Border', 'Pasta Vegetable Soup', 'Pasta With Italian Sausage', 'Pasta With Gorgonzola Sauce', 'Pasta With Salmon Cream Sauce', 'Pasta With Chickpeas and Kale', 'Pasta With Chicken and Broccoli']

解释:

  1. 首先,列表解析的工作方式如下:

[i for i in d['results']] 返回与d['results'] 相同的结果。

  1. 现在,您需要d['result'] 列表中每个字典的'title' 键的值,因此将i 更改为i['title']

[i['title'] for i in d['results']]

【讨论】:

  • 非常感谢,我正在尝试:title = [x for x in response['results'] if x == 'title']
【解决方案2】:

试试这个:

# Get all json objects.
for my_dict in data['results']:
   # Get title.
   print(my_dict["title"])


【讨论】:

    【解决方案3】:

    您可以通过简单的列表理解来迭代 results 列表:

    results_dict = {'results': [{'id': 654959, 'title': 'Pasta With Tuna', 'image': 'https://spoonacular.com/recipeImages/654959-312x231.jpg', 'imageType': 'jpg'}, {'id': 511728, 'title': 'Pasta Margherita', 'image': 'https://spoonacular.com/recipeImages/511728-312x231.jpg', 'imageType': 'jpg'}, {'id': 654812, 'title': 'Pasta and Seafood', 'image': 'https://spoonacular.com/recipeImages/654812-312x231.jpg', 'imageType': 'jpg'}, {'id': 654857, 'title': 'Pasta On The Border', 'image': 'https://spoonacular.com/recipeImages/654857-312x231.jpg', 'imageType': 'jpg'}, {'id': 654883, 'title': 'Pasta Vegetable Soup', 'image': 'https://spoonacular.com/recipeImages/654883-312x231.jpg', 'imageType': 'jpg'}, {'id': 654928, 'title': 'Pasta With Italian Sausage', 'image': 'https://spoonacular.com/recipeImages/654928-312x231.jpg', 'imageType': 'jpg'}, {'id': 654926, 'title': 'Pasta With Gorgonzola Sauce', 'image': 'https://spoonacular.com/recipeImages/654926-312x231.jpg', 'imageType': 'jpg'}, {'id': 654944, 'title': 'Pasta With Salmon Cream Sauce', 'image': 'https://spoonacular.com/recipeImages/654944-312x231.jpg', 'imageType': 'jpg'}, {'id': 654905, 'title': 'Pasta With Chickpeas and Kale', 'image': 'https://spoonacular.com/recipeImages/654905-312x231.jpg', 'imageType': 'jpg'}, {'id': 654901, 'title': 'Pasta With Chicken and Broccoli', 'image': 'https://spoonacular.com/recipeImages/654901-312x231.jpg', 'imageType': 'jpg'}], 'offset': 0, 'number': 10, 'totalResults': 210}
    
    
    print([result['title'] for result in results_dict['results']])
    

    【讨论】:

    • 非常感谢,我正在尝试:title = [x for x in response['results'] if x == 'title']
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多