我有一个包含多个键和值的字典,其值也包含键值对。我没有得到如何创建在python中使用这个字典的动态json。这里的字典:在python中创建动态json对象
image_dict = {"IMAGE_1":{"img0":"IMAGE_2","img1":"IMAGE_3","img2":"IMAGE_4"},"IMAGE_2":{"img0":"IMAGE_1", "img1" : "IMAGE_3"},"IMAGE_3":{"img0":"IMAGE_1", "img1":"IMAGE_2"},"IMAGE_4":{"img0":"IMAGE_1"}}
我预期的结果是这样的:
{
"data": [
{
"image": {
"imageId": {
"id": "IMAGE_1"
},
"link": {
"target": {
"id": "IMAGE_2"
},
"target": {
"id": "IMAGE_3"
},
"target": {
"id": "IMAGE_4"
}
}
},
"updateData": "link"
},
{
"image": {
"imageId": {
"id": "IMAGE_2"
},
"link": {
"target": {
"id": "IMAGE_1"
},
"target": {
"id": "IMAGE_3"
}
}
},
"updateData": "link"
},
{
"image": {
"imageId": {
"id": "IMAGE_3"
},
"link": {
"target": {
"id": "IMAGE_1"
},
"target": {
"id": "IMAGE_2"
}
}
},
"updateData": "link"
} ,
{
"image": {
"imageId": {
"id": "IMAGE_4"
},
"link": {
"target": {
"id": "IMAGE_1"
}
}
},
"updateData": "link"
}
]
}
我试图解决这个问题,但我没有得到预期的结果。
result = {"data":[]}
for k,v in sorted(image_dict.items()):
for a in sorted(v.values()):
result["data"].append({"image":{"imageId":{"id": k},
"link":{"target":{"id": a}}},"updateData": "link"})
print(json.dumps(result, indent=4))
的'json'部分是完全(当然,大部分)在这里无关,你的问题是“怎么办我将这个源词典转换为目标字典 –
是的,你的权利@brunodesthuilliers –
@rajendrapawar,你的预期的json是无效的在一个dict“..”链接中不能有重复的键:{ “target”:{ “ID”: “IMAGE_2” }, “目标”:{ “ID”: “IMAGE_3” }, “目标”:{ “ID”: “IMAGE_4” } ..' – RomanPerekhrest