我使用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')?
答案 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'