使用python更改json文件以对对象进行分类
我想制作一个json文件,其中包含从数据库中获取的结果,因此,我从数据库中获取结果,并制作json:使用python更改json文件以对对象进行分类,python,json,Python,Json,我想制作一个json文件,其中包含从数据库中获取的结果,因此,我从数据库中获取结果,并制作json: for result in data_list: json_data.append(dict(zip(column_names, result))) json_out = json.dumps(json_data, indent=4) 我的json输出类似于: [{"name" : "Jhon", "surname" : "smith"} , {"name" : "george",
for result in data_list:
json_data.append(dict(zip(column_names, result)))
json_out = json.dumps(json_data, indent=4)
我的json输出类似于:
[{"name" : "Jhon", "surname" : "smith"} , {"name" : "george", "surname" : "black"}]
但我想成为
["employees":{{"name" : "Jhon", "surname" : "smith"} , {"name" :"george","surname" : "black"}}]
这怎么可能呢?因为您的预期输出不是有效的JSON(或者首先是有意义的),所以您应该有一个Python字典,其中包含一个名为
employees
的元素,并为其分配JSON\u数据
然后,在该字典上调用json\u dumps()
:
for result in data_list:
json_data.append(dict(zip(column_names, result)))
final_json = {} # this is the Python dict I was talking about
final_json['employees'] = json_data
json_out = json.dumps(final_json, indent=4)
结果:
{
"employees": [
{
"surname": "so",
"name": "gi"
},
{
"surname": "lo",
"name": "lo"
}
]
}
这是所需数据的良好表示形式,因为您表示的是静态员工列表,必须将其表示为数组。您可以尝试tablib
import tablib
headers = ["name", "surname"]
data = [
("jhon", "smit"),
("george", "black")
]
data = tablib.Dataset(*data, headers=headers)
data.json
结果:
不,因为预期的输出无效。我们的输出在Python或JSON中不是有效的语法,所以不是。您可以有一个包含关键员工和值的对象(字典)和一个人员数组(列表),您只需要将现有列表放入字典中。
[{"name": "jhon", "surname": "smit"}, {"name": "george", "surname": "black"}]