gpt4 book ai didi

Python 查询 SQLite 映射值到列名

转载 作者:行者123 更新时间:2023-12-04 00:50:55 27 4
gpt4 key购买 nike

我正在创建一个 python 脚本来查询 SQLite 数据库文件。我已连接到 SQLite 数据库文件并运行 SELECT 查询以检索数据。

问题是输出缺少列名。

import sqlite3 as lite
import sys
import json

con = lite.connect('example.db')

with con:

con.row_factory = lite.Row

cur = con.cursor()
cur.execute("SELECT * FROM Devices")

rows = cur.fetchall()

rowarray_list = []
for row in rows:
t = (row['id'], row['name'], row['type'])
rowarray_list.append(t)

j = json.dumps(rowarray_list)
rowarrays_file = 'rowarrays.js'
f = open(rowarrays_file,'w')
print (f, j)

这是脚本的输出。

<_io.TextIOWrapper name='rowarrays.js' mode='w' encoding='UTF-8'> [[1, "example1", "Computer"], [2, "example2", "Server"], [3, "example3", "Server"]

下面是所需的输出。

{"records":[{"id": "1", "name": "example1", "type": "Computer"}, {"id": "2", "name": "example2", "type": "Server"}, {"id": "3", "name": "example3", "type": "Server"}]}

最佳答案

由于您已经在使用 sqlite3.Row 对象,您可能知道它们有一个 keys() 方法,该方法返回列名列表。用那个。尝试修改这部分代码:

rowarray_list = []
for row in rows:
d = dict(zip(row.keys(), row)) # a dict with column names as keys
rowarray_list.append(d)

关于Python 查询 SQLite 映射值到列名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35615083/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com