python pandas tosql的时候“Incorrect string value: ‘\\xF0\\x9F\\x99\\x8F‘

网友投稿 344 2022-08-26

python pandas tosql的时候“Incorrect string value: ‘\\xF0\\x9F\\x99\\x8F‘

今天想把pandas的csv里面的数据导入到数据库中,在导入的过程中有一些特殊字符,最终导致导入失败,错误码为:

"Incorrect string value: '\\xF0\\x9F\\x99\\x8F'

我的代码为:

import pandas as pdfrom sqlalchemy import create_engineimport sqlalchemyimport globengine = create_engine('mysql+pymysql://username:password@localhost/zhihudemo??charset=utf8')csv_files=glob.glob('data-science-for-good-careervillage/*.csv')for csv_name in csv_files: try: df=pd.read_csv(csv_name) table_name=csv_name.split('/')[-1] table_name=table_name.split('.')[0] df.to_sql(table_name, engine,index=False,if_exists='replace') except Exception as e: print(csv_name) print(e)

结果一些表情等特殊字符死活导入不进去。

解决方法

将对应字符类型换成将对应的数据类型改为utf8mb4类型,同时连接类型也要改成utf8mb4_general_ci

类似于我这样。然后代码改为:

import pandas as pdfrom sqlalchemy import create_engineimport sqlalchemyimport globengine = create_engine('mysql+pymysql://username:password@localhost/zhihudemo??charset=utf8mb4')csv_files=glob.glob('data-science-for-good-careervillage/*.csv')for csv_name in csv_files: try: df=pd.read_csv(csv_name) table_name=csv_name.split('/')[-1] table_name=table_name.split('.')[0] df.to_sql(table_name, engine,index=False,if_exists='replace') except Exception as e: print(csv_name) print(e)

参考文献

[1].利用pandas的to_sql将数据插入MySQL数据库和所踩过的坑.​

[2].python连接SQL报错:1366, "Incorrect string value: '\\xF0\\x9F\\x98\\x81. ​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python efficientdet AttributeError: module ‘gast‘ has no attribute ‘Num‘
下一篇:中小企业该怎么做问答营销!(小企业如何进行营销推广)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~