2014-10-19 43 views
2

我想映射一个字典与一个关键字有多个值到python。这是我得到的。映射dictonary与多个值的键到python的json

import json 

list =['abe','matt','roscoe'] 
key="name" 
nodes={} 
nodes.setdefault(key,list) 
['abe', 'matt', 'roscoe'] 

json_nodes =json.dumps(nodes) 
json_nodes 
'{"name": ["abe", "matt", "roscoe"]}' 

但我想有类似这样的 [ 一个JSON文件{ “名”: “安倍” }, { “名”: “马特” }, { “name”:“roscoe” } ]

任何建议将不胜感激。提前致谢。

回答

1

你有名称的列表,这样

>>> names = ['abe', 'matt', 'roscoe'] 

你只需要重复的名字,并创建在每个迭代上一个新的字典来获得词典的列表,这样

>>> json.dumps([{"name": name} for name in names]) 
[{"name": "abe"}, {"name": "matt"}, {"name": "roscoe"}] 

这里,

[{"name": name} for name in names] 

被称为列表综合。生成新列表是一种方便的技术。在我们的例子中,我们重复namesfor name in names。在每次迭代中,name将具有与迭代对应的当前名称,并且我们用{"name": name}创建一个新的字典。

+0

谢谢!你知道哪些资源可以通过迭代字典和列表来获得更好的效果吗?这只是练习吗? – 2014-10-19 05:15:42

+0

@ user3426338您可以阅读关于List,Set和Dictionary comprehensions的内容。他们会派上用场,他们是用Python编程的首选方式。 – thefourtheye 2014-10-19 05:17:14

+0

哎呀。再次感谢 – 2014-10-19 05:20:24