我的处理需要将十六进制字符串转换为十六进制。我不想对其进行编码。
例子:
我的程序(解决不同的问题)向我提供字符串 result = ["0xa0", "0xb4"]
。现在我想直接使用 0xa0 作为以字节为单位的十六进制,如 bytes([result[0], results[1])
。但这是不可能的......有人知道解决方案吗?
答案 0 :(得分:0)
这里有一个基本的混淆,“十六进制”不是一种类型。 bytes
构造函数采用一系列 int 对象。您可以使用 int
构造函数(通过将基数传递给它)将这些字符串转换为它们表示的十六进制数的整数,并将该操作的映射传递给 bytes
构造函数:
>>> result = ["0xa0", "0xb4"]
>>> bytes([int(x, 16) for x in result])
b'\xa0\xb4'
我怀疑无论您在何处创建 result
,您都不必要地在某些 hex(x)
上使用了 int
。最好一开始就不要这样做。