Python 对UPDATE语句使用SQLite3中的ExecuteMy

Python 对UPDATE语句使用SQLite3中的ExecuteMy,python,sql,sqlite,Python,Sql,Sqlite,我试图使用executemany更新sqlite3数据库中的两列。我使用pandas数据框来存储一些tiff图像文件的信息——它们的高度、宽度(两个整数)以及使用它们的文件名(字符串)作为WHERE子句 import ImageQA import os import sqlite3 home_directory = os.getcwd() image_file_set = ImageQA.get_image_size(shelfmark_reference,working_directory)

我试图使用executemany更新sqlite3数据库中的两列。我使用pandas数据框来存储一些tiff图像文件的信息——它们的高度、宽度(两个整数)以及使用它们的文件名(字符串)作为WHERE子句

import ImageQA
import os
import sqlite3
home_directory = os.getcwd()
image_file_set = ImageQA.get_image_size(shelfmark_reference,working_directory)
#image_count = len(image_file_set))
tiff_file_list = list(image_file_set['TiffFile'])
height_list = list(image_file_set['Height'])
width_list = list(image_file_set['Width'])
zipped = zip(height_list,width_list,tiff_file_list)
file_list = list(zipped)
os.chdir(home_directory)
conn = sqlite3.connect('DigiFolio')
cursor = conn.cursor()
cursor.executemany('UPDATE Capture_information SET Height = ?,Width = ? WHERE TiffFileName =?',file_list)
conn.close()
代码运行正常,但当我查询数据库以查看信息输入是否正确时,Height和Width列仍然为空


我想我知道这个问题,但还没有设法解决它。使用?传递第三个参数意味着WHERE语句中的字符串周围没有任何引号。但是,如果我在问号周围加上引号,我会得到以下错误——“提供的绑定数量不正确。当前语句使用2个,提供了3个。”建议用引号表示?不可识别为参数。

不必引用字符串字段,事实上,正如您所发现的那样,它可能会导致问题。然而

从:

commit()

此方法提交当前事务。如果不调用此方法,则自上次调用commit()以来所做的任何操作都不会被调用 从其他数据库连接可见。如果你想知道为什么你不 查看您写入数据库的数据,请检查您没有 忘记调用这个方法


非常感谢你。如释重负,如果感觉有点昏昏欲睡,这是一个如此简单的修复。