【问题标题】:Python - how to get key value from dictionary inside a list with duplicate key names?Python - 如何从具有重复键名的列表中的字典中获取键值?
【发布时间】:2017-03-14 22:25:17
【问题描述】:

我在 Windows 10 64 位上使用 Python 3.6.0

我正在尝试从第 604 行获取 url 键值: https://hastebin.com/iminawuguv.py

我在想也许检查 'format_id': '22', == '22' 还是什么?

我试过了:

url = url_info['formats'][0]['url']

但这只会让我获得第 29 行的第一个键值。

【问题讨论】:

  • 您的大型 JSON 响应的第 600 行是 'Accept-Language': 'en-us,en;q=0.5'
  • 对不起,我的意思是 604。
  • 除非您知道更具体的内容,否则无法解决。是否基于 format_id 您想要该特定 URL?

标签: python list dictionary duplicates key


【解决方案1】:

我认为你需要:

[d['url'] for d in url_info['formats'] if d['format_id'] == '22']

你的url_info['formats']是一个字典列表,你想要的是最后一个元素,所以你也可以这样做:url_info['formats'][-1]['url']

【讨论】:

  • 为什么要使用列表组合。目标值? List comp 暗示我可以有多个匹配项。
  • 这里用于查找值。 List comp 不必有多个匹配项,它可以为空或只匹配一个元素。
  • 我明白,我的意思是它的本质是它希望尽可能多的匹配。这是其他人在没有先验知识的情况下阅读代码的情况。问题中没有任何内容表明标识符是什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-18
  • 1970-01-01
  • 2019-01-16
  • 2013-09-21
  • 2019-02-04
  • 2018-09-28
  • 1970-01-01
相关资源
最近更新 更多