SQLalchemy从MSSQL列中恢复二进制数据时出现问题



从数据库

Id EndpointId MacAddress IsDefault IsAuto

16 -2147483641 0x08002781A502 1 120 -2147483639 0x005056A54212 1

MacAddress列是BINARY(6)数据类型

我正在使用FreeTDS与Python和SQLAlchemy来获取数据。

mymetadata = MetaData(engine_idf)
macadds = Table('EndpointsMacs',mymetadata,schema='dbo',autoload=True)
for row in macadds.select(macadds.c.IsDefault == 1).execute():
    print row

我得到的是。

(16, -2147483641," ( x00 x81 xa5 x02",真的,真的)

(20, -2147483639," x00PV xa5B x12",真的,真的)

我需要获得文本等价物中的第三个值,以便我可以使用实际值08002781A502

谢谢

您可以使用binascii.hexlify(或binascii.h2a_hex)来获得十六进制表示:

>>> import binascii
>>> binascii.hexlify("x08x00'x81xa5x02")
'08002781a502'

binascii.unhexlify,如果你想获得二进制数据表示:

最新更新