MySQL / python 连接器转换参数不起作用

MySQL / python conncector conversion arguments not working

我试图在 mysql.connector.connect() 中使用以下附加参数,但是当我 运行 以下代码时,它似乎没有任何效果。

import mysql.connector
cnx = mysql.connector.connect(
    ....
    raw='true',
    use_unicode='false'
)
cursor = cnx.cursor()
query = ("...")
cursor.execute(query)
result = cursor.fetchall()
print result

[(datetime.date(2015, 4, 5), 1243), ...

其中结果有一列 MySQL 日期时间格式值 但即使有这些参数,输出仍然是 python datetime.date(YYYY,M,D) 格式

即使 "raw" 设置为 true,调用 col = cursor.column_names、returns unicode 而不是字符串时也会出现同样的问题。 print cursor.colun_names = (u'string_1', u'string_2')

是否需要其他配置?我不想在每次使用时都编写代码来转换它们。谢谢!

我认为当 Python 评估如下:

if use_unicode:
   // do something

变量 use_unicode returns 正确,因为字符串 'false' 的计算结果为 True。尝试使用 Boolean 值。

import mysql.connector
    cnx = mysql.connector.connect(
        ....
        raw=True,
        use_unicode=False
    )
    cursor = cnx.cursor()
    query = ("...")
    cursor.execute(query)
    result = cursor.fetchall()
    print result

raw=True means:

A MySQLCursorRaw cursor skips the conversion from MySQL data types to Python types when fetching rows. A raw cursor is usually used to get better performance or when you want to do the conversion yourself.

所以你得到了预期的 ByteArray。我不知道你到底想做什么,但是当我在 Python 中使用 MySQL 时,我更喜欢使用字典数据结构。

cursor = cnx.cursor(dictionary=True)

然后您将得到字典形式的结果。如果你想将它作为字符串查看,只需执行 print str(dict)

import mysql.connector
    cnx = mysql.connector.connect(user=self.username, password=self.password, host=self.host, database=self.database);
    cursor = cnx.cursor(dictionary=True)
    query = ("...")
    cursor.execute(query)
    result = cursor.fetchall()
    print str(result)