使用Python对象与对象形成JSON数组

使用Python对象与对象形成JSON数组,python,json,list,python-2.7,dictionary,Python,Json,List,Python 2.7,Dictionary,我有一些变量需要转储为json格式: { "elements":[ { "key":"foo", "value":"7837" }, { "key":"bar", "value":"3423" } ] } 我正在尝试找出正确的对象,它将在使用json.dumps()时提供上述结构。我看到在python中,列表给出了一个json数组,而字典在使用

我有一些变量需要转储为json格式:

{  
  "elements":[  
      {  
          "key":"foo",
          "value":"7837"
      },
      {  
          "key":"bar",
          "value":"3423"
      }
  ]
}
我正在尝试找出正确的对象,它将在使用
json.dumps()
时提供上述结构。我看到在python中,列表给出了一个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?

为什么不直接使用literal

x = {
    "elements": [
        {"key":"foo", "value":"7837"},
        {"key":"bar", "value":"3423"}
    ]
}

要修复代码,在分配给
元素
字典条目时,需要使用列表文字(
[]
):

>>> 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"}]}'
>x={}
>>>x[“elements”]=[]#>>x[“elements”]。追加({})
>>>x[“elements”].append({})
>>>x[“元素”][0][“键”]=“foo”
>>>x[“元素”][0][“值”]=“7837”
>>>x[“元素”][1][“键”]=“条”
>>>x[“元素”][1][“值”]=“3423”
>>>json.dumps(x)
“{”元素“:[{”值“:“7837”,“键“:“foo”},{”值“:“3423”,“键“:“bar”}]}”

但是,它很难读取和维护。

为什么不直接使用
x={“元素”:[{“键”:“foo”,“值”:“7837”},{“键”:“条”,“值”:“3423”}}
?这确实是可用的。我只是想更好地理解python对象/json结构。但是你说的很管用<代码>元素键有另一个数组(Python列表)作为值,而不是另一个对象。那是你的错误。
转储的Python结构变成了JSON。。。是从该JSON加载
创建的。