解決SQLAlchemy MySQL Oracle 中文執行亂碼問題

在使用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')
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容