将具有多个值的字典映射为JSON格式的Python代码
我正在尝试把一个字典(也就是键值对的集合)映射到Python中,这个字典的一个键有多个值。下面是我目前的代码。
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": "abe" }, { "name": "matt" }, { "name": "roscoe" } ]如果有任何建议,我会非常感激。提前谢谢大家!
1 个回答
3
你有一个名字的列表,像这样:
>>> names = ['abe', 'matt', 'roscoe']
你只需要遍历这些名字,然后在每次遍历时创建一个新的字典,这样就能得到一个字典的列表,像这样:
>>> json.dumps([{"name": name} for name in names])
[{"name": "abe"}, {"name": "matt"}, {"name": "roscoe"}]
这里,
[{"name": name} for name in names]
被称为 列表推导。这是一种方便的技巧,用来生成新的列表。在我们的例子中,我们用 for name in names
来遍历 names
。在每次遍历时,name
会对应当前的名字,然后我们用 {"name": name}
创建一个新的字典。