【发布时间】:2018-01-04 18:37:20
【问题描述】:
我正在尝试使用 python、mysql 数据库和 mysqldb 将列表中的每个值插入到数据库中。数据库中此列表中所有元素的类型为 VARCHAR。
但我收到此错误:
TypeError:字符串格式化期间并非所有参数都转换
列表理解是删除空字符串,为了尝试解决当前的问题,我尝试将每个元素转换为字符串,但没有成功。我也尝试将其转换为查询函数中的字符串,但也没有成功。
值为-3.89738e-05
类型(值)是“类型'str'”
for scan in outer:
scan = [str(x) for x in scan if x]
for value in scan:
print value
print type(value)
sql_insert = ('INSERT INTO langmuir_data(currentI)'
'VALUES("%s")')
cursor.execute(sql_insert, str(value))
有人知道我为什么会收到这个错误以及如何解决它吗?
【问题讨论】:
-
如果您的查询是
sql_insert = """INSERT INTO langmuir_data (currentI) VALUES (%s)"""和cursor.execute(sql_insert, (str(value),))会发生什么? -
同样的事情发生,两者都是有效的语法。我之前已经成功地将该语法用于该程序中的其他程序和其他列表
-
好吧,在我使用 SQL 之前,它们会做不同的事情,因为您没有将参数作为元组传递。你复制/粘贴了我写的两行?
-
没有看到第二行的区别,但现在已经改变了,它可以工作了!谢谢,你想添加你的评论作为答案,我会接受。为什么将它作为元组传递会改变它?
标签: python mysql-python