列表中的Python字典(拉动单个值)

时间:2015-12-17 14:33:31

标签: python excel list dictionary

我有一个包含词典的列表 -

[{'Name of Business' : 'Amazon', 'Contact Name' : 'Jeff Bezos', 'Email' : 'Jeff@Amazon.com'},
 { {'Name of Business' : 'Microsoft', 'Contact Name' : 'Bill Gates', 'Email' : 'Bill@Microsoft.com'}]

我稍后需要将每个业务名称,联系人姓名等保存到变量中,或者有一种简单的方法来调用它们以供重用。

我发现使用像

这样的东西
for x in dict_list:
   print x["Client"], x['Contact Name'], x['Email']

打印出所有数据:
亚马逊Jeff Bezos Jeff@Amazon.com
微软比尔盖茨Bill@Microsoft.com

但是,如果我只想要第一个条目的信息呢? 如果我想将每个字典条目中的数据保存到单独的变量,该怎么办?

使用

 first_entry = dict_list[0]  
 print first_entry["Client"], first_entry['Contact Name'], first_entry['Email']

但是必须有一些方法可以在一行中完成此操作而不先创建另一个变量吗?

感谢您的帮助!

4 个答案:

答案 0 :(得分:1)

print dict_list[0]["Client"], dict_list[0]['Contact Name'], dict_list[0]['Email']

答案 1 :(得分:1)

只是不要创建变量:

print dict_list[0]["Client"], dict_list[0]['Contact Name'], dict_list[0]['Email']

或循环:

idx = [1]
for i in idx:
    print dict_list[i]["Client"], dict_list[i]['Contact Name'], dict_list[i]['Email']

答案 2 :(得分:1)

您的问题是您用来存储数据的结构。我建议使用pandas数据帧根据您需要的操作处理您的数据:

import pandas as pd

df = pd.DataFrame(l)
#Out[5]: 
#  Contact Name               Email Name of Business
#0   Jeff Bezos     Jeff@Amazon.com           Amazon
#1   Bill Gates  Bill@Microsoft.com        Microsoft

每个词典条目对应一个列。 您可以将第一个条目作为系列访问:

df['Name of Business']         
#Out[9]: 
#0       Amazon
#1    Microsoft
#Name: Name of Business, dtype: object

或者作为清单:

df['Name of Business'].tolist()
#Out[8]: ['Amazon', 'Microsoft']

答案 3 :(得分:1)

  

如果我想将每个字典条目中的数据保存到单独的变量怎么办?

您可以使用列表推导或map(),例如对于第一个列表元素:

client, contact, email = map(dict_list[0].get, ("Client", "Contact Name", "Email"))