美文网首页
解决SQLAlchemy MySQL Oracle 中文执行乱

解决SQLAlchemy MySQL Oracle 中文执行乱

作者: Op_小剑 | 来源:发表于2018-06-29 18:11 被阅读0次

在使用SQLAlchemy 往数据库插入数据时,提示

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

这个是因为设置编码的问题,下面分别说下Oracle 和MySQL解决方案.

  • Oracle
import  os

os.environ["NLS_LANG"] = "GERMAN_GERMANY.UTF8" 

  • MySQL
URI = f"mysql+pymysql://{USER}:{PASSWORD}@{HOST}:{PORT}/{db}?charset=utf8"

以上就是解决方案!

如果还是不可以,尝试在create_engine 时 添加 encoding

engine = create_engine(URI, convert_unicode=False,
                       pool_recycle=10,
                       pool_size=50,
                       echo=True,
                       encoding='utf8')

相关文章

网友评论

      本文标题:解决SQLAlchemy MySQL Oracle 中文执行乱

      本文链接:https://www.haomeiwen.com/subject/ndaayftx.html