Python MySQL blob数据类型转换

时间:2018-02-08 20:37:08

标签: python mysql

我使用Python 2.7将数据写入MySQL blob列:

data_list=[{ id': 0, 'binarydata': 
'\x04\x0f\x002\x00\x00\x00\x00\x00\x03\x00 \x00\x06\x00@\x00\t\x00` 
\x00\x0c\x00\x80\x00\x0f\x0’}]  

cursor.executemany(SQL, data_list)

我想从数据库中读取二进制数据,其格式与我上面提到的相同:

我试过了:

SELECT id, HEX(binarydata) as binarydata FROM T;  

我得到了:

  data_list=[{ id': 0, 'binarydata': u'040F00320000000000030020000600400009..'}]  

不同之处在于:binarydata现在有前缀u'并且原始data_list中存在的所有\ x都消失了 问题:如何以原始格式获取数据(使用\ x且没有前缀u')?

1 个答案:

答案 0 :(得分:0)

在Python2.7中有一个内置库binascii

使用binascii.hexlify,您可以bytearray例如\x04\x0f并将其转换为十六进制值。通过使用binascii.unhexlify,您可以采取其他方式。

import binascii

a = b'\x04\x0f'
b = binascii.hexlify(a)

print b  # '040f'
print binascii.unhexlify(b)  # '\x04\x0f'