'charmap'编解码器无法在位置 0 对字符"\u010c"进行编码:字符映射到 <undefined> MariaDB 和 SQLAlchemy



我正在尝试使用SQLAlchemy将数据插入MariaDB数据库。我正在解析一个XML文件以获得需要插入的数据。我读数据没有问题。许多关于此错误的问题,例如python 3.2 UnicodeEncodeError:';charmap';编解码器可以';t编码字符';\u2013';在位置9629:字符映射到<未定义>指从文件中读取数据。然而,我在这一步得到了错误,

con_string = db_driver + '://' + db_user + ':' + db_password + '@' + db_host + ':' + db_port + '/' + db_name
engine = sqlalchemy.create_engine(con_string, pool_pre_ping=True)
meta_data = sqlalchemy.MetaData(engine)
table = sqlalchemy.Table('table', meta_data, autoload=True, autoload_with=engine)
table.insert().execute(data)

data是一本字典。它包含从解析映射到表的列的XML文件中获得的值。

原因可能是什么?

为了支持所有Unicode字符,我们需要将?charset=utf8mb4添加到连接URL的末尾,如中所述

https://docs.sqlalchemy.org/en/14/dialects/mysql.html#charset-选择

例如

e = create_engine(
"mysql+pymysql://scott:tiger@localhost/test?charset=utf8mb4")

相关内容

最新更新