我有一些变量需要转储为格式的json:
{
"elements":[
{
"key":"foo",
"value":"7837"
},
{
"key":"bar",
"value":"3423"
}
]
}
我试图找出一个正确的对象,它将在json.dumps()
使用上面给出上述结构。我在python中看到,list给出了一个json数组,其中字典在使用json转储时给出json对象。
我正在尝试类似的事情:
x={}
x["elements"]={}
x["elements"]["key"]="foo"
x["elements"]["value"]="7837"
x["elements"]["key"]="bar"
x["elements"]["value"]="3423"
json_x=json.dumps(x)
但这仍然让我:
{"elements": {"key": "bar", "value": "3423"}}
这显然是不正确的。
如何合并正确的字典和列表结构以获取上述json?
答案 0 :(得分:1)
为什么不用文字?
x = {
"elements": [
{"key":"foo", "value":"7837"},
{"key":"bar", "value":"3423"}
]
}
要修复代码,在分配到[]
字典条目时需要使用列表文字(elements
):
>>> x = {}
>>> x["elements"] = [] # <---
>>> x["elements"].append({})
>>> x["elements"].append({})
>>> x["elements"][0]["key"]="foo"
>>> x["elements"][0]["value"]="7837"
>>> x["elements"][1]["key"]="bar"
>>> x["elements"][1]["value"]="3423"
>>> json.dumps(x)
'{"elements": [{"value": "7837", "key": "foo"}, {"value": "3423", "key": "bar"}]}'
但是,很难阅读,维护。