python - 如何从 SQL 查询创建 JSON 文件?

标签 python json sqlite

我正在从 SQL 查询创建一个 JSON 文件。但我无法真正创造。问题是有一个“元素”对象,它有产品。但是我直接在“项目”对象中创建产品。
编码。

import json
import collections
import sqlite3

conn = sqlite3.connect('database.db')
cursor = conn.cursor()
cursor.execute("SELECT barcode,listPrice,salePrice FROM productstable")
rows = cursor.fetchall()

objects_list = []
for row in rows:
    d = collections.OrderedDict()
    d["barcode"] = row[0]
    d["listPrice"] = row[1]
    d["salePrice"] = row[2]
    objects_list.append(d)
j = json.dumps(objects_list,indent=4)
with open("products.json", "w") as f:
    f.write(j)
conn.close()
结果产生以下 JSON 对象
[
    {
        "barcode": "1952084972279",
        "listPrice": 100.5,
        "salePrice": 99
    },
    {
        "barcode": "1952084972280",
        "listPrice": 115.3,
        "salePrice": 100
    }
]
而所需的应该如下
{
    "items": [
        {
            "barcode": "1952084972279",
            "salePrice": 100.5,
            "listPrice": 99
        },
        {
            "barcode": "1952084972280",
            "salePrice": 115.3,
            "listPrice": 100
        }
    ]
}

最佳答案

定义 objects_list作为字典而不是列表。

objects_list = {}
objects_list["items"] = []
并附加到 objects_list["items"] .
objects_list["items"].append(d)

关于python - 如何从 SQL 查询创建 JSON 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66601191/

相关文章:

python - 在Scipy中曲线拟合真实数据时如何修复 "RuntimeWarning: overflow encountered in exp"?

java - 从 Twitter api 获取无效的 json

python - 如何从python中通过heapq实现的优先级队列中删除log(n)中的元素?

python - 如何对 Pandas 中的多列进行分组和聚合

python - linux中看似没有正常系统调用,python如何判断PID?

javascript - Vue2 : JSON object using emit not working?

java - Hibernate 多对多和 JSON 序列化

cocoa - 核心数据 SQLite 加密?

java - 无法为外部集合成员的类构建惰性迭代器

sqlite - 没有CTE的SQLite 3树形列表