python使用engine.begin()连接数据报错:'utf-8' codec can't decode byte 0xd6 in position 61: invalid continuation byte
问题描述:python使用engine.begin()连接数据报错:'utf-8' codec can't decode byte 0xd6 in position 61: invalid continuation byte
问题分析:问题定位到如下位置:
from sqlalchemy import create_engine ... engine = create_engine( f"postgresql://{DB_CONFIG['user']}:{DB_CONFIG['password']}@" f"{DB_CONFIG['host']}:{DB_CONFIG['port']}/{DB_CONFIG['database']}?client_encoding=utf8" ) ... with engine.begin() as conn:
...
执行engine.begin()这一行报错,原因是:创建engine的连接字符串出现了错误。
解决方案:找到原因后,检查连接字符串,从如下几个方面排查:
- 检查host(ip)、port、database(数据库名)、user(用户名)、password(密码),大部分问题出在配置上面,包括大小写字母问题。
- 检查数据库的编码格式(utf8)是否一致:SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = '你的数据库名';
***********************************
愿 你 有 前 进 一 寸 的 勇 气 , 亦 有 后 退 一 尺 的 从 容 。
***********************************
***********************************
请尊重作者的劳动成果,转载请注明出处。
***********************************

浙公网安备 33010602011771号