I am trying to map a dictionary with one key that has multiple values into python. Here is what I got.
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"]}'
But I would like to have a json file similar to this
[
{
"name": "abe"
},
{
"name": "matt"
},
{
"name": "roscoe"
}
]
Any suggestions will be greatly appreciated. Thanks in advance.
解决方案
You have a list of names, like this
>>> names = ['abe', 'matt', 'roscoe']
You just need to iterate the names, and create a new dictionary on every iteration to get the list of dictionaries, like this
>>> json.dumps([{"name": name} for name in names])
[{"name": "abe"}, {"name": "matt"}, {"name": "roscoe"}]
Here,
[{"name": name} for name in names]
is called List Comprehension. It is a convenient technique to generate new lists. In our case, we iterate over names with for name in names. On every iteration, name will have the current name corresponding to the iteration and we create a new dictionary with {"name": name}.