Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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更改json文件以对对象进行分类_Python_Json - Fatal编程技术网

使用python更改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",

我想制作一个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", "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"}]