在Python中解码二进制值,它将提供与Postgres解码相同的输出

时间:2013-05-17 12:14:47

标签: python bytea

我必须在python中将值'9DAFF2834DDD73C18D79E31DE22F0D49DF13E525D3FFAE599530BECCD1B916FF'解码为十六进制:

为此我正在做

>>> import binascii
>>>
>>> binascii.unhexlify('9DAFF2834DDD73C18D79E31DE22F0D49DF13E525D3FFAE599530BECCD1B916FF')
>>>'\x9d\xaf\xf2\x83M\xdds\xc1\x8dy\xe3\x1d\xe2/\rI\xdf\x13\xe5%\xd3\xff\xaeY\x950\xbe\xcc\xd1\xb9\x16\xff'

但是,postgres正在给予价值:

>>> db=> select decode('9DAFF2834DDD73C18D79E31DE22F0D49DF13E525D3FFAE599530BECCD1B916FF','hex') as sha;

输出结果为:

>>> \235\257\362\203M\335s\301\215y\343\035\342/\015I\337\023\345%\323\377\256Y\2250\276\314\321\271\026\377

在Python中是否有任何与Postgres相同的结果(Postgres输出是bytea)?

1 个答案:

答案 0 :(得分:1)

不要粗鲁,但它们完全一样。一个是八进制,另一个是十六进制。

>>> '\235\257\362\203M\335s\301\215y\343\035\342/\015I\337\023\345%\323\377\256Y\2250\276\314\321\271\026\377'
'\x9d\xaf\xf2\x83M\xdds\xc1\x8dy\xe3\x1d\xe2/\rI\xdf\x13\xe5%\xd3\xff\xaeY\x950\xbe\xcc\xd1\xb9\x16\xff'