[python sqlalchemy中的HEX()函数

问题描述 投票:-1回答:2

我在MySQL中使用本机UNHEX()作为二进制文件存储了不带破折号的uuid4,并使用本机HEX()函数检索了uuid4。

示例:

UUID4: UNHEX("7D96F13AC8394EF5A60E8252B70FC179")
BINARY IN MySQL: }éŽ:·9NŠÙ ýRÈ ¾y
UUID4: HEX(UUID4Column)

这可以很好地使用其函数HEX()和UNHEX()进行存储和检索。

但是,通过使用ORM sqlalchemy并将UUID4Column声明为LargeBinary(16),返回值变为b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'

如何用python代码将此字节转换为7D96F13AC8394EF5A60E8252B70FC179

python sqlalchemy binary uuid
2个回答
2
投票

您可以使用binascii.hexlify

>>> import binascii
>>> bs = b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'
>>> binascii.hexlify(bs)
b'7d96f13ac8394ef5a60e8252b70fc179'

>>> # for str result
>>> binascii.hexlify(bs).decode('ascii')
'7d96f13ac8394ef5a60e8252b70fc179'

0
投票

没有任何进口:

您可以使用int.from_bytes和字符串格式:

s = b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'

print(f"{(int.from_bytes(s,byteorder='big')):X}")

打印:

7D96F13AC8394EF5A60E8252B70FC179
© www.soinside.com 2019 - 2024. All rights reserved.