查了变天的问题 怀疑是 字符串格式的问题
当 使用 单引号时报
MySQLdb._exceptions.ProgrammingError: (1064, <NULL>)
sql3 = 'update mysite_yaoinfos set yaodian="{}" where id>=11133 and name = "{}"'.format(i["yaodian"], i["name"])
使用双引号 报 MySQLdb._exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax;
sql3 = "update mysite_yaoinfos set yaodian='{}' where id>=11133 and name = '{}'".format(i["yaodian"], i["name"])
报错的文本导入内容也不同
最后发现 导入的 yaodian 字符串 内 含有 “”,’’ 。
解决办法: MySQLdb.escape_string()
在MySQLdb模块中自带针对mysql的转义函数escape_string()
改为:
sql3 = 'update mysite_yaoinfos set yaodian="{}" where id>=11133 and name = "{}"'.format(MySQLdb.escape_string(i["yaodian"]).decode('utf-8'), i["name"])
参考: https://www.cnblogs.com/greencollar/p/13787542.html