python解決SQLAlchemy+MySQL插入數(shù)據(jù)時(shí)報(bào)警告Warning: (1366, "Incorrect string value: '\\xD6\\...' for column ...

1.工具環(huán)境

  • Pycharm2018.3
  • python3.7
  • Anaconda3.7
  • mysql5.7
  • sqlalchemy1.2.15

2.問(wèn)題描述

在插入數(shù)據(jù)的時(shí)候拋出以下異常:
Warning: (1366, "Incorrect string value: '\\xD6\\xD0\\xB9\\xFA\\xB1\\xEA...' for column 'VARIABLE_VALUE' at row 484")
result = self._query(query)

3.相關(guān)代碼

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String

Base = declarative_base()

class User(Base):
    __tablename__ = 'user'
    id = Column(Integer, primary_key=True)
    name = Column(String(255))
    sex = Column(String(8))

if __name__ == "__main__":
engine = create_engine("mysql+pymysql://root:password@localhost/my_db")
Session = sessionmaker(bind=engine)
user= User(name="測(cè)試", sex="男")
session = Session()
session.add(user)
session.commit()
session.close()
print("插入成功")

執(zhí)行后拋出警告

image.png

驅(qū)動(dòng)暫時(shí)使用的是pymysql,問(wèn)題就在這里,各種網(wǎng)上搜索解決方案,基本上都是說(shuō)字符集的不統(tǒng)一導(dǎo)致的,解決方法都是修改數(shù)據(jù)庫(kù)和pycharm字符集,保持統(tǒng)一,但都沒(méi)有效果,依然拋出異常

4.解決方法

1.安裝mysql-connector-python驅(qū)動(dòng)
  conda install mysql-connector-python
2.修改代碼
engine = create_engine("mysql+pymysql://root:password@localhost/my_db")
改為:
engine = create_engine("mysql+mysqlconnector://root:password@localhost/my_db")

執(zhí)行后插入成功,一切正常

image.png

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容