python sqlalchemy 中的 HEX() 函数
HEX() function in python sqlalchemy
我在 MySQL 中使用本机 UNHEX() 作为二进制存储没有破折号的 uuid4,并使用本机 HEX() 函数检索 uuid4。
示例:
UUID4: UNHEX("7D96F13AC8394EF5A60E8252B70FC179")
BINARY IN MySQL: }éŽ:·9NŠÙ ýRÈ ¾y
UUID4: HEX(UUID4Column)
这可以很好地使用其函数 HEX() 和 UNHEX() 进行存储和检索。
但是,通过使用 ORM sqlalchemy 并将 UUID4Column 声明为 LargeBinary(16),return 值变为 b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'
如何将此字节转换为 7D96F13AC8394EF5A60E8252B70FC179
python 代码?
您可以使用 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'
没有任何导入:
您可以使用 int.from_bytes and string formatting 和 'X'
来获得整数的十六进制表示:
s = b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'
nicer = f"{(int.from_bytes(s,byteorder='big')):X}"
print(nicer)
打印:
7D96F13AC8394EF5A60E8252B70FC179
这对我有用:
>>> print(b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'.hex())
7d96f13ac8394ef5a60e8252b70fc179
只需将您的字节数据传递到一个变量中,然后 .hex()
它作为您的答案。
像这样:
byte_data = b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'
print(byte_data.hex())
我在 MySQL 中使用本机 UNHEX() 作为二进制存储没有破折号的 uuid4,并使用本机 HEX() 函数检索 uuid4。
示例:
UUID4: UNHEX("7D96F13AC8394EF5A60E8252B70FC179")
BINARY IN MySQL: }éŽ:·9NŠÙ ýRÈ ¾y
UUID4: HEX(UUID4Column)
这可以很好地使用其函数 HEX() 和 UNHEX() 进行存储和检索。
但是,通过使用 ORM sqlalchemy 并将 UUID4Column 声明为 LargeBinary(16),return 值变为 b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'
如何将此字节转换为 7D96F13AC8394EF5A60E8252B70FC179
python 代码?
您可以使用 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'
没有任何导入:
您可以使用 int.from_bytes and string formatting 和 'X'
来获得整数的十六进制表示:
s = b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'
nicer = f"{(int.from_bytes(s,byteorder='big')):X}"
print(nicer)
打印:
7D96F13AC8394EF5A60E8252B70FC179
这对我有用:
>>> print(b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'.hex())
7d96f13ac8394ef5a60e8252b70fc179
只需将您的字节数据传递到一个变量中,然后 .hex()
它作为您的答案。
像这样:
byte_data = b'}\x96\xf1:\xc89N\xf5\xa6\x0e\x82R\xb7\x0f\xc1y'
print(byte_data.hex())