pymysql返回令人困惑的值错误

时间:2017-05-21 01:59:24

标签: python pymysql

我正在尝试编写一个简单的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的原因是什么?

1 个答案:

答案 0 :(得分:0)

将您的插入查询更改为%s而不是%

insert into contacts (nickname,fullname,cell,email,updatedt) values(%s,%s,%s,%s,%s)

请参阅doc