在使用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')
网友评论