获取JSON的所有相同键/值对

时间:2017-06-14 19:46:01

标签: json python-3.x

我得到一个字典(好吧,实际上,twitter.api.TwitterDictResponse)基本上看起来像这样

{
    'a_list' : 
        [
            {'key': 'value1', 'foo': 'bar1'},
            {'key': 'value2', 'foo': 'bar2', 'sup': 'dope'}                
            {'key': 'value3'}
        ]
}

我有兴趣在列表中提取value1value2value3

我知道我可以这样做:

output_list = []
for i in my_dict["a_list"]:
    output_list.append(i["key"])

但是必须有一种更有效的方法吗?

my_dict["a_list"][0:3]["key"]之类的东西。

1 个答案:

答案 0 :(得分:1)

不是JSON ,它是 Python词典

您可以使用以下列表理解来提升性能(

output_list = [ x['key'] for x in my_dict['a_list'] ]

你不能更有效地做这件事,因为你必须循环遍历元素,以获得这些元素的列表。

另一种方法是 lazily ,例如使用map(..)

output_list = map(lambda x : x['key'],my_dict['a_list'])

但是不生成列表,而是生成器。最终它需要相同的时间(如果你需要所有的元素)。但是生成器构造得很快(因为映射被推迟)。