Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python dictionary to json无法理解基础知识_Python_Arrays_Json_Dictionary - Fatal编程技术网

Python dictionary to json无法理解基础知识

Python dictionary to json无法理解基础知识,python,arrays,json,dictionary,Python,Arrays,Json,Dictionary,在这个例子中,我可以用dict创建一个JSON,它具有所需的结构 import json jsondata = {} jsondata = {'type':'add', 'id':'','fields':{'message':'text', 'from':'email@email.com'}} jsfields = jsondata, jsondata print json.dumps(jsfields) 这是所需的输出 [ { "id": "", "type": "ad

在这个例子中,我可以用dict创建一个JSON,它具有所需的结构

import json

jsondata = {}
jsondata = {'type':'add', 'id':'','fields':{'message':'text', 'from':'email@email.com'}}
jsfields = jsondata, jsondata
print json.dumps(jsfields)
这是所需的输出

[
  {
    "id": "",
    "type": "add",
    "fields": {
      "from": "email@email.com",
      "message": "text"
    }
  },
  {
    "id": "",
    "type": "add",
    "fields": {
      "from": "email@email.com",
      "message": "text"
    }
  }
]
现在我不明白的是,如何在这个数组中添加更多的json对象

从这一点来看,我不知道如何在jsfields中添加与下一个数组相同的内容

{
    "id": "",
    "type": "add",
    "fields": {
      "from": "email@email.com",
      "message": "text"
    }

}

jsfields=jsondata,jsondata

此行创建一个包含两个
jsondata
副本的元组。元组有点像列表,但是不可变的,这意味着在创建元组后不能向其添加任何内容

您可能希望这样做来创建一个列表:

jsfields=[jsondata,jsondata]

这将创建一个包含两个
jsondata
副本的列表。然后,您可以非常轻松地添加更多条目:


jsfields.append(some_other dict)

您应该将JSON字符串转换回python对象,然后在列表中添加一个新项,然后再次将其转换为JSON

import json

jsondata = {}
jsondata = {'type':'add', 'id':'','fields':{'message':'text', 'from':'email@email.com'}}
jsfields = jsondata, jsondata
json_output = json.dumps(jsfields) # this is where your old output is
new_json = json.loads(json_output) # convert the old output back to python object
new_json.append(jsondata) # add new item to the list
print(json.dumps(new_json)) # convert to JSON again

我不好意思回答我自己的问题。但我只需要把dict附加到一个列表中。这发生在我们中最好的人身上:P