在此示例中,我可以使用具有所需结构的字典创建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"
}
}
答案 0 :(得分:1)
jsfields = jsondata, jsondata
此行创建一个包含两个jsondata
副本的元组。元组有点像一个列表,但是是不可变的,这意味着在创建后,就不能在其中添加任何内容。
您可能要执行以下操作来创建列表:
jsfields = [jsondata, jsondata]
这将创建一个包含两个jsondata
副本的列表。然后,您可以轻松添加更多条目:
jsfields.append(some_other_dict)
答案 1 :(得分:0)
您应该将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