【发布时间】:2021-12-09 21:48:13
【问题描述】:
我有一个值列表如下:
byte_values = ["\x00", "\x02", ... ]
它们是字节值,我想将它们转换为ASCII。但是因为前面没有b,所以Python把它们当成字符串,decode方法不起作用。有没有办法让 Python 将这些字符串视为字节并将它们转换为有意义的实际字符串?
【问题讨论】:
标签: python type-conversion byte
我有一个值列表如下:
byte_values = ["\x00", "\x02", ... ]
它们是字节值,我想将它们转换为ASCII。但是因为前面没有b,所以Python把它们当成字符串,decode方法不起作用。有没有办法让 Python 将这些字符串视为字节并将它们转换为有意义的实际字符串?
【问题讨论】:
标签: python type-conversion byte
试试str.encode:
>>> byte_values = ["\x00", "\x02", "..." ]
>>> [b.encode() for b in byte_values]
[b'\x00', b'\x02', b'...']
对于另一种方法,您还可以为此使用 map 内置函数:
>>> byte_values = list(map(str.encode, byte_values))
>>> byte_values
[b'\x00', b'\x02', b'...']
【讨论】:
您需要对字符串进行编码。
byte_values = ["\x00", "\x02", "\x04"]
for string_byte in byte_values:
print(string_byte.encode())
【讨论】: