我得到一个列表清单,类似于以下内容。我是Python的新手
[
{'id': 1244},
{'name': 'example.com'},
{'monitoring_enabled': 'Yes'},
{'monitoring_url': 'http://www.example.com/'},
{'monitoring_page_url': 'http://www.example.com/products-spool-chain-overview.htm'},
{'monitoring_text_string': 'quality product'},
]
[
{'id': 1245},
{'name': 'example.com'},
{'monitoring_enabled': 'Yes'},
{'monitoring_url': 'http://www.example.com/'},
{'monitoring_page_url': 'http://www.example.com/products-spool-chain-overview.htm'},
{'monitoring_text_string': 'quality product'},
]
[
{'id': 1246},
{'name': 'example.com'},
{'monitoring_enabled': 'Yes'},
{'monitoring_url': 'http://www.example.com/'},
{'monitoring_page_url': 'http://www.example.com/products-spool-chain-overview.htm'},
{'monitoring_text_string': 'quality product'},
]
如何从中获取“名称”值,而不必嵌套循环?
我当前的代码是:
for _row in _rs:
print(_row)
print(_row["name])
但是,我收到一条错误消息:TypeError: list indices must be integers, not str
所以,我怎么能做到这一点?
看起来如何?
l = [{'id': 1244}, {'name': 'example.com'}, ...]
names = e['name'] for e in l if 'name' in e]
print(names)
>>> ['example.com']
如果确实是一个列表列表,则每个列表之间都有一个逗号。那么您可以轻松地做到这一点:
for i in x:
print(i[1]['name'])