【问题标题】:PyMySQL returns bytes instead of strPyMySQL 返回字节而不是 str
【发布时间】:2014-01-21 12:30:22
【问题描述】:

这里是一个使用 pymysql (Python 3) 的简单例子:

import pymysql
conn = pymysql.connect(user='admin', passwd='...', host='host', use_unicode=True)
c = conn.cursor()
c.execute("SELECT category FROM product LIMIT 0,1")
print (type(c.fetchone()[0]))

返回

字段的类型是 varchar,我想如果我指定 use_unicode=True 它应该将字段值返回为 str 而不是 字节。是的,我知道我可以将字节转换为 str,但我不想这样做。

是否可以立即获得 str ?我做错了什么?

【问题讨论】:

    标签: python pymysql


    【解决方案1】:

    问题出在字段的排序规则中。由于它被设置为 utf8_bin,pymysql 将其视为binary,尽管它是 varchar。将排序规则更改为 utf8_general_ci 解决了问题。

    【讨论】:

    • 您在哪里进行了此更改?在pymysql连接?
    • 不,我更改了表格列的排序规则。
    猜你喜欢
    • 2019-08-01
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-01-08
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多