我尝试从数据库查询的输出创建一个简单的JSON对象,如下所示:
json_obj= {
'1': 'test_1',
'2': 'test_2',
'3': 'test_3',
'4': 'test_4',
'5': 'test_5',
}
到目前为止,我一直在尝试循环和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'},
}
有关如何执行此操作的任何建议吗?
非常感谢
答案 0 :(得分: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()}