【发布时间】:2021-07-31 21:54:36
【问题描述】:
我有这样的内容结构:
content = [
{'@type': 'ListItem', 'position': 1,
'item':
{'@type': 'Product', 'url': 'TestSample', 'sku': 'HO6096863EAD7E0PH', 'mpn': 'HO6096863EAD7E0PH', '@id': 'HO6096863EAD7E0PH'}},
{'@type': 'ListItem', 'position': 2,
'item':
{'@type': 'Product', 'url': 'TestSample', 'sku': 'HO5FFFA64882401PH', 'mpn': 'HO5FFFA64882401PH', '@id': 'HO5FFFA64882401PH'}}
]
我需要使用键“url”获取所有值。我使用了这样的循环并且它可以工作,但是如何使它更容易呢?我已阅读有关“过滤器”功能的信息,但不确定它是否适合我的情况。
for r in content:
k = r.get('item', {}).get('url')
print(k)
输出应该是这样的:TestSample, TestSample
【问题讨论】:
-
为什么对当前的代码不满意?
-
你的方法有什么问题?您可以使用理解使其更容易:
k = [r.get('item', {}).get('url') for r in content] -
@Sandertjuhh 非常感谢!
-
filter可以帮助您避免在没有其中一个键的情况下跳过字典,但您也可以在循环中使用简单的if来做到这一点。
标签: python list dictionary nested-loops