2019-11-05
记录一下刚发现的一个坑。
pandas的 to_sql 方法 有一个 if_exists 参数,设置为 replace 会在表存在的时候,先删除表,然后创建新表。
问题就出在创建这一块,它创建表的时候遗漏了charset这个属性(这个属性在创建engine的时候设置),而默认使用了database获得的charset。也就是说如果你的database设置的默认编码是latin1,即使你创建engine的时候指定是utf8也不会起作用。
解决:去mysql中修改database的字符编码。