gpt4 book ai didi

python - pandas to_sql 给出 unicode 解码错误

转载 作者:太空狗 更新时间:2023-10-29 18:30:25 33 4
gpt4 key购买 nike

我有一个通过 read_csv 加载的 pandas 数据框,我试图在尝试时通过 to_sql 将其推送到数据库

df.to_sql("assessmentinfo_pivot", util.ENGINE)

我得到一个 unicodeDecodeError:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 83-84: ordinal not in range(128)

to_sql 没有编码选项来为 to_sql 指定 utf-8,并且引擎是在编码设置为 utf-8 的情况下创建的

ENGINE = create_engine("mssql+pymssql://" +
config.get_local('CEDS_USERNAME') + ':' +
config.get_local('CEDS_PASSWORD') + '@' +
config.get_local('CEDS_SERVER') + '/' +
config.get_local('CEDS_DATABASE'),
encoding="utf-8")

任何 pandas 洞察力让它正常工作?我的大部分搜索都让我找到了对 to_csv 有类似错误的人,这只是通过添加 encoding="utf-8"来解决,但不幸的是,这不是这里的一个选项。

我尝试压缩文件,但即使压缩到标题,它仍然会出错:http://pastebin.com/F362xGyP

最佳答案

我遇到了 pymysql 和 pandas.to_sql 组合的完全相同的问题

更新,这是对我有用的:

不要将字符集作为参数传递,而是尝试将其直接附加到连接字符串:

connect_string = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(DB_USER, DB_PASS, DB_HOST, DB_PORT, DATABASE)

问题似乎发生在pymysql中,错误的原因似乎是您定义的编码在设置pymsql连接时未正确转发和设置。

为了调试,我硬编码了

encoding = 'utf-8

在 pymysql _do_execute_many 函数中向我解释了它。

关于python - pandas to_sql 给出 unicode 解码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32235696/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com