我正在尝试编写一个简单的python脚本,从文本文件导入到mysql数据库,遇到一个令人困惑的错误
Windows 10,Mysql 5.7.18,Python 3.6,pymysql
文本文件的内容:
nickname|fullname|cell|email|updatedt
andrew|Andrew Jones|+12395551172|arj@domain.com|2017-05-04 13:26:10
laurelai|Laurelai Smith||lsmith@domain.net|2017-05-04 13:27:47
我读入数据来构造一个sql字符串: 插入联系人(昵称,全名,单元格,电子邮件,更新)值(%,%,%,%,%)
要插入的字段值如下: ['andrew','Andrew Jones','+ 12395551172','arj @ domain.com','2017-05-04 13:26:10'] 这当然是一个Python列表对象。我已经尝试将其转换为元组,但结果相同
将行插入表中的例程如下:
def insert(sql, values):
#insert a single row of data from the input file
connection = getconn()
with connection.cursor() as cursor:
try:
cursor.execute(sql, values)
#except ValueError:
#print('Value error from pymysql')
finally:
cursor.close()
返回以下ValueError:
ValueError:索引69处的不支持的格式字符','(0x2c)
但是,如果我提取数据值并通过连接将它们插入到sqlstring中,我得到:
insert into contacts (nickname,fullname,cell,email,updatedt) values('laurelai','Laurelai Smith','','lsmith@domain.net','2017-05-04 13:27:47')
这会插入没有错误的行
导致ValueError的原因是什么?
答案 0 :(得分:0)
将您的插入查询更改为%s
而不是%
:
insert into contacts (nickname,fullname,cell,email,updatedt) values(%s,%s,%s,%s,%s)
请参阅doc。