用于cyrlic数据的MySQL DB UnicodeEncodeError的SQLAlchemy插入

用于cyrlic数据的MySQL DB UnicodeEncodeError的SQLAlchemy插入,mysql,python-3.x,pandas,encoding,sqlalchemy,Mysql,Python 3.x,Pandas,Encoding,Sqlalchemy,我在MySQL数据库中使用Python.SQLAlchemy。 所有代码都适用于数据中的拉丁符号,但不适用于西里尔语: UnicodeEncodeError:“charmap”编解码器无法在中编码字符 位置0-17:角色映射到 我在引擎构造函数中添加了encoding='utf8',convert_unicode=True,但没有什么可更改的 MySQL中表utf8/utf8-bin的字符集/排序规则 代码: 数据库连接 插入 cyrrilic数据中SQLAlchemy引擎的回声: 2020-

我在MySQL数据库中使用Python.SQLAlchemy。 所有代码都适用于数据中的拉丁符号,但不适用于西里尔语:

UnicodeEncodeError:“charmap”编解码器无法在中编码字符 位置0-17:角色映射到

我在引擎构造函数中添加了encoding='utf8',convert_unicode=True,但没有什么可更改的

MySQL中表utf8/utf8-bin的字符集/排序规则

代码:

数据库连接

插入 cyrrilic数据中SQLAlchemy引擎的回声:

2020-08-02 22:07:05839信息sqlalchemy.engine.base.engine插入到 Nb_类类型、类_子类型、文本、解释、名称值 %s、 %s,%s,%s%s 2020-08-02 22:07:05840信息 sqlalchemy.engine.base.engine'CL'、'ППзззззззззззззззззззз1079, 'Расширенная функциональность', 'Стандартный процессор, внешняя ааааааааааааааааааааа,1072 22:07:05840信息sqlalchemy.engine.base.engine回滚

我能做什么

尝试将?charset=utf8mb4添加到连接URI的末尾戈德汤普森

尝试将?charset=utf8mb4添加到连接URI的末尾戈德汤普森


尝试将?charset=utf8mb4添加到连接URI的末尾。是的,它可以工作?字符集=utf8mb4,Gord Thompson,Reagrds!尝试将?charset=utf8mb4添加到连接URI的末尾。是的,它可以工作?字符集=utf8mb4,Gord Thompson,Reagrds!
    def DB_alchemy(self, category, db="mysql://user:pass@localhost/all_gid_2"):
    self.sql_engine = sql.create_engine(db, echo=True, encoding='utf8', convert_unicode=True)

    metadata = sql.MetaData(self.sql_engine)

    sql_tbl_name_products = category+'_products'
    sql_tbl_name_class = category + '_classes'

    self.tbl_products = sql.Table(sql_tbl_name_products, metadata, autoload=True)
    self.tbl_classes = sql.Table(sql_tbl_name_class, metadata, autoload=True)

    self.connection = self.sql_engine.connect()
def Insert_df_to_SQL(self, df, tbl):

        dict_insert = df.to_dict(orient='records')

        insert_qry = tbl.insert()
        self.connection.execute(insert_qry, dict_insert)
    Traceback (most recent call last):
  File "C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py", line 259, in <module>
    FillDB.Classes_to_SQL(df_new=FillDB.df_Classes.head(3))
  File "C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py", line 241, in Classes_to_SQL
    self.Insert_df_to_SQL(df_select, self.tbl_classes)
  File "C:/Users/shulya403/Shulya403_works/all_gid_2/Database/db_insert_pd.py", line 166, in Insert_df_to_SQL
    self.connection.execute(insert_qry, dict_insert)
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1014, in execute
    return meth(self, multiparams, params)
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\sqlalchemy\sql\elements.py", line 298, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1133, in _execute_clauseelement
    distilled_params,
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1318, in _execute_context
    e, statement, parameters, cursor, context
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1515, in _handle_dbapi_exception
    util.raise_(exc_info[1], with_traceback=exc_info[2])
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\sqlalchemy\util\compat.py", line 178, in raise_
    raise exception
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\sqlalchemy\engine\base.py", line 1278, in _execute_context
    cursor, statement, parameters, context
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\sqlalchemy\engine\default.py", line 593, in do_execute
    cursor.execute(statement, parameters)
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\MySQLdb\cursors.py", line 199, in execute
    args = tuple(map(db.literal, args))
  File "C:\Users\shulya403\Shulya403_works\all_gid_2\venv\lib\site-packages\MySQLdb\connections.py", line 280, in literal
    s = self.string_literal(o.encode(self.encoding))
  File "C:\Users\shulya403\AppData\Local\Continuum\anaconda3\lib\encodings\cp1252.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-17: character maps to <undefined>