如何使用to\u sql在表创建时强制使用utf8mb4?

2024-04-29 10:15:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python从API导入一些数据,格式化它并将其保存到MySQL数据库中。你知道吗

results, types, valid = self.process_data(data, [])
        if valid:
            results.to_sql(
                con=self.db.connection,
                name="degreed_" + method,
                if_exists="replace", 
                index=False,
                dtype=types,
            )

在我的连接中,我指定utf8mb4作为字符集:

self.connection = create_engine(
            'mysql+mysqlconnector://{0}:{1}@{2}/{3}?charset=utf8mb4'.
            format(database_username, database_password, database_ip, database_name))

在我的类型中,我有如下文本列:

NVARCHAR(length=500, collation='utf8mb4_bin').

但是,我仍然收到错误消息:

COLLATION 'utf8mb4_bin' is not valid for CHARACTER SET 'utf8' 

在MySQL中,我的字符集客户端是utf8mb4,默认的表字符集是utf8mb4。为什么字符集是utf8?你知道吗

抱歉,如果我在这里做了什么愚蠢的事,我对sqlalchemy和mysql都是新手。你知道吗


Tags: nameselfdataifbinmysqlutf8connection