Python从两个字典生成JSON
我在python 3中有两个字典,分别称为a和b,当作为JSON转储时,其结果如下:Python从两个字典生成JSON,python,json,dictionary,Python,Json,Dictionary,我在python 3中有两个字典,分别称为a和b,当作为JSON转储时,其结果如下: a = {"person": 26.94, "car": 99.49, "dog": 50.56} b = {"filename": "1234.jpg", "model": "model1", "prototxt": "prototxt.txt"} 我需要将它们组合成下面的JSON格式,但我对python中的方法有点迷茫,所以欢迎任何指点 { "payload": { "config": [{
a = {"person": 26.94, "car": 99.49, "dog": 50.56}
b = {"filename": "1234.jpg", "model": "model1", "prototxt": "prototxt.txt"}
我需要将它们组合成下面的JSON格式,但我对python中的方法有点迷茫,所以欢迎任何指点
{
"payload": {
"config": [{
"model": "model1",
"filename": "1234.jpg",
"prototxt": "prototxt.txt"
}],
"results": [{
"object": "person",
"value": 26.94
},
{
"object": "car",
"value": 99.49
},
{
"object": "dog",
"value": 50.56
}
]
}
}
您可以通过以下代码实现这一点:
a = {"person": 26.94, "car": 99.49, "dog": 50.56}
b = {"filename": "1234.jpg", "model": "model1", "prototxt": "prototxt.txt"}
a_list= []
for record in a:
a_list.append({'object':record, 'value':a[record]})
payload = {'config':[b], 'results':a_list}
data = {"payload":payload}
# You can print this in the terminal/notebook with
print json.dumps(data, indent=4)
# Or save with
json_string = json.dumps(data)
with open('/path/to/file/payload.json', 'w') as outfile:
json.dump(data, outfile)
这是一个在字典中创建条目并将它们打包成字符串以添加到新的高级字典中的问题 您可以通过以下代码实现这一点:
a = {"person": 26.94, "car": 99.49, "dog": 50.56}
b = {"filename": "1234.jpg", "model": "model1", "prototxt": "prototxt.txt"}
a_list= []
for record in a:
a_list.append({'object':record, 'value':a[record]})
payload = {'config':[b], 'results':a_list}
data = {"payload":payload}
# You can print this in the terminal/notebook with
print json.dumps(data, indent=4)
# Or save with
json_string = json.dumps(data)
with open('/path/to/file/payload.json', 'w') as outfile:
json.dump(data, outfile)
这是一个在字典中创建条目并将它们打包成字符串以添加到新的高级字典中的问题 请展示你试过的东西。为什么你有
“值”:99.98
与“对象”:“人”
?是不是应该是26.94
?嗨,罗根,抱歉-打字错误,我改了。我正在努力生成JSON。在迭代模型时,我以for循环的方式将数据生成到字典中,但在试图理解如何从那里转换到上面的JSON格式时遇到了困难。我编写的上述格式与我们正在使用的下游API(apache nifi)兼容。{'payload':{'config':[b],'results':[{'object':k,'value':v}表示k,v在a.items()]}
您需要对a
应用转换,将其转换为结果
格式,将其放入与所需结构匹配的嵌套字典中。(按照Steven Rumbalski的建议做)然后用json.dumps()
(使用json
模块)转储它。伙计们,非常感谢这些提示-我现在就来尝试一下。请展示一下您的尝试。为什么你有“值”:99.98
与“对象”:“人”
?是不是应该是26.94
?嗨,罗根,抱歉-打字错误,我改了。我正在努力生成JSON。在迭代模型时,我以for循环的方式将数据生成到字典中,但在试图理解如何从那里转换到上面的JSON格式时遇到了困难。我编写的上述格式与我们正在使用的下游API(apache nifi)兼容。{'payload':{'config':[b],'results':[{'object':k,'value':v}表示k,v在a.items()]}
您需要对a
应用转换,将其转换为结果
格式,将其放入与所需结构匹配的嵌套字典中。(按照Steven Rumbalski的建议做)然后用json.dumps()
(使用json
模块)转储它。伙计们非常感谢这些提示-我现在就来尝试一下。json
是标准库的一部分,所以不需要使用pip
。无论如何,这似乎正是他们想要的。您也可以在一个嵌套的混合列表/dict comprehension中执行此操作:{“payload”:{“config”:[b],“results”:[{“object”:k,“value”:v}表示k,v在a.items()]}
感谢大家的提示,这正是我想要的。问题解决了json
是标准库的一部分,因此无需使用pip
。无论如何,这似乎正是他们想要的。您也可以在一个嵌套的混合列表/dict comprehension中执行此操作:{“payload”:{“config”:[b],“results”:[{“object”:k,“value”:v}表示k,v在a.items()]}
感谢大家的提示,这正是我想要的。问题解决了!