c语言sscanf函数的用法是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~