【发布时间】:2021-01-03 03:03:56
【问题描述】:
我正在使用pymysql==0.10.1 (python3.7) 读取具有 BIT 列的表,并得到错误的值:
CREATE TABLE root.numeric
(BIT_COL BIT(10));
insert into root.numeric
values (b'0010001000');
insert into root.numeric
values (b'0000100000');
然后
with connection.cursor() as cursor:
sql = f"select * from `root`.`numeric`;"
cursor.execute(sql)
result = cursor.fetchone()
print("mysql payload", result)
得到:
mysql payload {'BIT_COL': b'\x00\x88'} # nice
mysql payload {'BIT_COL': b'\x00 '}. # not nice
这是为什么呢?我检查了一下,看起来 pymysql 代码没有为 BIT 字段转换任何内容。
【问题讨论】:
标签: python mysql type-conversion pymysql