[英]Converting a list of bytes data to string
请建议一种将字节列表转换为字符串列表或任何方法的方法,以便我可以将 resp 数据作为字符串读取,我尝试使用 decode 但以下错误不支持它 -
class“列表”的未解析属性参考“解码”
resp = [b'\r\x1b[2K\x1b[39m[00479650ms][INFO][MBED_DC]: dc_func:230 Waiting \r\n',
b'\x1b[0m\r\n', b'AT+BOOTARG=TRACE=ON\r\r\n']
解码它:
resp = [b'\r\x1b[2K\x1b[39m[00479650ms][INFO][MBED_DC]: dc_func:230 Waiting \r\n',
b'\x1b[0m\r\n', b'AT+BOOTARG=TRACE=ON\r\r\n']
decode_list = []
for item in resp:
decode_list.append(item.decode("utf-8"))
时间比较:
exp1 = """
resp = [b'item1',b'item2']
new_list = []
for item in resp:
new_list.append(item.decode("utf-8"))
"""
exp2 = """
resp = [b'item1',b'item2']
new_list = [item.decode("utf-8") for item in resp]
"""
exp3 = """
resp = [b'item1',b'item2']
resp_dec = list(map(lambda x: x.decode("utf-8"), resp))
"""
timeit(exp1, number=1000)
timeit(exp2, number=1000)
timeit(exp3, number=1000)
exp3 虽然速度较慢,但似乎更“优雅”。
输出:
exp1 --> 0.0002586000000000116
exp2 --> 0.00029969999999999997
exp3 --> 0.0004574999999999996
使用 map 解码列表中的每个项目,然后将 map 全部解码到一个新列表中:
resp_decoded = list(map(lambda i: i.decode('utf8'), resp))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.