python - 从数据库查询输出创建 JSON 字符串

标签 python json python-3.x

我尝试从数据库查询的输出创建一个简单的 JSON 对象,它看起来像这样:

json_obj= {
           '1': 'test_1',
           '2': 'test_2',
           '3': 'test_3',
           '4': 'test_4',
           '5': 'test_5',
           }

到目前为止,我一直在尝试 for loops 和 json.dumps 但无法正确处理:

cat_list = []
cats = Category.query.all()
for cat in cats:
    item = {
            cat.id: cat.name
           }
    cat_list.append(item)

json_cat_list = json.dumps(cat_list)

这确实创建了一个 JSON 对象,但不是我正在寻找的对象。

json_obj= {
           {'1': 'test_1'},
           {'2': 'test_2'},
           {'3': 'test_3'},
           {'4': 'test_4'},
           {'5': 'test_5'},
           }

关于如何做到这一点有什么建议吗?

非常感谢

最佳答案

您需要一个单个 dict 对象,而不是它们的列表。

cat_dict = {}                         # 1
for cat in Category.query.all():
    cat_dict[cat.id] = cat.name       # 2

json_cat_dict = json.dumps(cat_dict)  # 3

或者,(正如下面提到的@Daniel Roseman)为了简洁起见,您可以将所有内容压缩到一个字典理解中:

cat_dict = {cat.id: cat.name for cat in Category.query.all()}

关于python - 从数据库查询输出创建 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49410712/

相关文章:

python - 如何在 django modelForm 中向输入类型 'multiple' 添加 ='file' 属性?

python - 如何从嵌套的 json 值中提取特定值。?

c# - 无法将字符串转换为 system.Net.HttpContent

c# - 如何修改并保留 "dynamic"对象中的成员/嵌入数组(使用dynamic关键字声明的对象)

python - 在Python中加密Windows exe文件

javascript - 在 HTA 应用程序中使用 JQUERY 读取 JSON 文件

python - OpenCV Python调整大小图像

python - 如果文件已经存在,如何防止 shutil.move 覆盖该文件?

Python正则表达式检查字符串是否包含方法调用

Python TCP Payload Duplication - 同时将数据传递到多个端点