python - 在 Python 中解码二进制值,这将给出与 Postgres 解码相同的输出

标签 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 的值(value)是:

>>> 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 输出是字节)?

最佳答案

无意冒犯,但它们是完全相同的。一个是八进制,另一个是十六进制。

>>> '\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'

关于python - 在 Python 中解码二进制值,这将给出与 Postgres 解码相同的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16608769/

相关文章:

python - python导入是否保证按顺序排列?依靠这个是个好主意吗?

sql - lo_create(0) 如何与插入查询一起使用

python - 尝试将 QLayout ""添加到 QWidget "",它已经有一个布局

python - 如何在 celery 中回调但不阻止进程

postgresql - 具有十六进制值的 Golang+Postgres WHERE 子句

oracle - 如何将 bytea 从 Postgres 复制到 Oracle

postgresql - 将 bigint 转换为 bytea,但交换字节顺序

java - Postgresql - 如何在 Java 中将 bytea 转换为文本或字符串

python - 在 django 模型中加载树结构时出现问题

python - 将文本写入具有最大像素宽度的图像 Python PIL