gpt4 book ai didi

python - sqlite3cursor.fetchall() 返回一个空数组

转载 作者:行者123 更新时间:2023-12-01 03:14:05 28 4
gpt4 key购买 nike

我通过 ssh 连接到远程服务器,并在那里创建了两个 python 文件作为测试:一个用于创建数据库,另一个用于从中读取数据。

创建数据库的脚本

import os
import sqlite3

# set up database
conn = sqlite3.connect('Materials.db')
c = conn.cursor()

def createTable():
c.execute("DROP TABLE IF EXISTS images")
c.execute("CREATE TABLE images(ID TEXT, url TEXT)")
createTable()

path = os.getcwd()

imagepath = "/home/rootadmin/1080_images"
imagedir = os.listdir(imagepath)
for image in range(0,len(imagedir)):
c.execute('INSERT INTO images(ID, url) VALUES(?,?)',(imagedir[image],'www.google.com'))
print(imagedir[image])

这里打印命令所需的数据,例如它打印图像的 ID。

在我的脚本中从数据库读取数据:

import sqlite3

conn = sqlite3.connect('Materials.db')
c = conn.cursor()

c.execute('SELECT ID FROM images')
objectId = c.fetchall()
print(objectId)

我对 sqlite3 的了解有限,但我希望第二个脚本中的打印命令能够打印在 Materials.db 中的图像表中找到的 ID,但它返回一个空数组。

最佳答案

插入时需要提交事务:

for image in range(0,len(imagedir)):
c.execute('INSERT INTO images(ID, url) VALUES(?,?)',(imagedir[image],'www.google.com'))
print(imagedir[image])
conn.commit()

use the connection as a context manager当上下文退出时自动提交:

with conn:
for image in range(0,len(imagedir)):
c.execute('INSERT INTO images(ID, url) VALUES(?,?)',(imagedir[image],'www.google.com'))
print(imagedir[image])

这还确保在出现异常时显式回滚事务。

关于python - sqlite3cursor.fetchall() 返回一个空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42626352/

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