Python读取SQL Server rowversion类型bytes数据如何转指定十六进制字符串
Python中SQL Server rowversion类型bytes转十六进制方案
核心实现
你需要的是字节到十六进制字面量的转换,不需要做任何字符编解码操作,直接使用Python内置的字节处理方法即可实现:
方案1(Python 3.5+ 推荐)
直接调用bytes对象内置的hex()方法,拼接0x前缀即可:
# 示例输入:读取到的rowversion原始bytes rowversion_data = b'\x00\x00\x00\x00\x00\x00\x18\x9c' # 转换为目标格式 result = f"0x{rowversion_data.hex()}" # 输出结果:0x000000000000189c print(result)
方案2(兼容低版本Python)
使用标准库binascii实现转换:
import binascii rowversion_data = b'\x00\x00\x00\x00\x00\x00\x18\x9c' hex_part = binascii.hexlify(rowversion_data).decode('ascii') result = f"0x{hex_part}"
注意说明
之前尝试编解码失败的原因是:字符编解码是将二进制字节按编码规则映射为自然语言文本,而rowversion是SQL Server内部维护的二进制版本标识,本身不对应任何文本字符,自然无法通过编解码得到预期结果。
内容的提问来源于stack exchange,提问作者nobody
相关产品推荐
相关产品推荐

