社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

将Pandas数据帧编码到MySQL的UTF-8

Jonathan • 5 年前 • 2641 次点击  

我正在使用Pandas、MySQL和SQLAlchemy。

我正在使用pandas.to_sql()将包含非ASCII文本的pandas数据帧提交到MySQL数据库。注意,对于我使用过的其他数据帧,我的过程工作得很好

但是,对于非ascii文本,以下调用会引发错误:

df.to_sql(
        name='tableOne',
        con=engine,
        index=False,
        if_exists='replace')

结果错误(最后一行):

UnicodeEncodeError: 'ascii' codec can't encode character '\xe5' in position 143: ordinal not in range(128)

在阅读了类似的文章之后,我发现答案是在引擎中指定“utf8”,如下所示:

engine = create_engine(f'mysql+mysqldb://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}?charset=utf8', encoding="utf8")

我已经尝试了我能想到的一切,我能在网上找到的一切。我把我的引擎改成包括所有的“utf8”、“utf-8”等。我试过手动将DF的每个文本列编码为utf-8。这些都不管用

我已经完成了以下其他类似的SO帖子,这些帖子似乎有类似的问题,因此也有类似的解决方案,但是没有什么对我有效:

Another UnicodeEncodeError when using pandas method to_sql with MySQL

How to handle encoding in Python 2.7 and SQLAlchemy 🏴‍☠️

How do I get SQLAlchemy to correctly insert a unicode ellipsis into a mySQL table?

convert pandas dataframe to utf8

谢谢你的帮助!

编辑:fixed brainfart:'Unicode'->'ascii'

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/51577
 
2641 次点击  
文章 [ 1 ]  |  最新文章 5 年前