使用connectorx从MySQL加载数据时列数据类型异常求助
解决connectorx读取MySQL数据时文本/日期列显示为b''的问题
方案1:连接URL中指定字符集
在数据库连接URL末尾添加字符集参数,强制connectorx使用UTF-8编码读取文本数据,从根源避免bytes格式问题:
import connectorx as cx db_url="mysql://{user}:{pw}@localhost:{port}/{db}?charset=utf8mb4".format(user="testuser",pw="testpassword",db="cachedb",port=13306) query="""Select * from test""" df=cx.read_sql(db_url,query)
方案2:批量解码已读取的bytes列
如果已经完成数据读取,可遍历所有object类型列,将bytes对象解码为字符串:
# 遍历所有object类型的列 for col in df.select_dtypes(include=["object"]).columns: df[col] = df[col].map(lambda x: x.decode("utf-8") if isinstance(x, bytes) else x)
方案3:检查并修正MySQL表的字符集
确保数据库表使用UTF-8系列字符集(如utf8mb4),避免编码不匹配:
- 查询表的字符集配置:
SHOW CREATE TABLE test;
- 若字符集不符,执行修改语句:
ALTER TABLE test CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
内容的提问来源于stack exchange,提问作者Chhandosee Bhattacharya
相关产品推荐
相关产品推荐

