从列表列表中传递键来获取值

问题描述 投票:0回答:1

我得到一个列表清单,类似于以下内容。我是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

所以,我怎么能做到这一点?

python list dictionary tuples
1个回答
0
投票

看起来如何?

l = [{'id': 1244}, {'name': 'example.com'}, ...]
names = e['name'] for e in l if 'name' in e]

print(names)
>>> ['example.com']

0
投票

如果确实是一个列表列表,则每个列表之间都有一个逗号。那么您可以轻松地做到这一点:

for i in x:
    print(i[1]['name'])
© www.soinside.com 2019 - 2024. All rights reserved.