如何从数据库查询结果生成指定结构的JSON字符串
解决从数据库查询结果生成指定结构JSON的问题
你想要生成一个单一JSON对象(键为分类ID、值为分类名称),但目前代码生成的是包含多个小对象的JSON数组,问题出在你用列表来收集数据,而非直接构建字典。
调整思路,直接初始化一个空字典来存储键值对,就能得到你想要的结构:
import json # 初始化空字典替代列表 cat_dict = {} cats = Category.query.all() for cat in cats: # 将整数ID转为字符串(JSON规范要求对象键必须是字符串类型) cat_dict[str(cat.id)] = cat.name # 直接序列化这个字典 json_cat = json.dumps(cat_dict)
运行这段代码后,json_cat会输出你期望的格式:
{"1": "test_1", "2": "test_2", "3": "test_3", "4": "test_4", "5": "test_5"}
额外补充:如果你的cat.id在数据库中本身就是字符串类型,可以省略str()转换,但多数场景下数据库ID是整数,转换为字符串能确保完全符合JSON规范。
内容的提问来源于stack exchange,提问作者blountdj
相关产品推荐
相关产品推荐

