Python/sqlite3 查询列名转为 JSON

0 投票
1 回答
1373 浏览
提问于 2025-04-18 03:03

我想把SQL查询的结果以JSON格式返回,并且列名也要包含在里面,这样我就可以在客户端创建一个表格。但我还没有找到合适的解决办法。

我的代码:

json_data = json.dumps(c.fetchall())
return json_data

我希望得到这样的输出:

{
                "name" : "Toyota1",
                "product" : "Prius",
                "color" : [
                  "white pearl",
                  "Red Methalic",
                  "Silver Methalic"
                ],
                "type" : "Gen-3"
}

有没有人知道怎么解决这个问题?

1 个回答

1

你的代码只返回了数据的值。如果你想要获取列的名称,还需要查询一个叫做'sqlite_master'的表,这个表里有用来创建表的SQL语句。

c.execute("SELECT sql FROM sqlite_master WHERE " \
          "tbl_name='your_table_name' AND type = 'table'")
create_table_string = cursor.fetchall()[0][0]

这样你就可以得到一个字符串,从中提取出列的名称:

"CREATE TABLE table_name (columnA text, columnB integer)"

撰写回答