Python中如何将bytes类型数据转换为预期的数字元组
问题原因
直接调用tuple(data)时,Python会遍历bytes对象的每个字节,将每个字节对应的十进制ASCII值作为元组的元素,因此会输出ASCII码组成的元组,和预期结果不符。你手头的bytes数据是JSON格式的字符串编码结果,需要先反序列化再做类型转换才能得到目标结果。
实现方案
方案1:使用json模块(推荐,适配标准JSON格式)
import json data = b'["1","2","3"]' # 步骤:json解析bytes → 遍历列表转int → 转元组 result = tuple(int(item) for item in json.loads(data)) print(result) # 输出:(1, 2, 3)
方案2:使用ast.literal_eval(兼容Python字面量格式)
from ast import literal_eval data = b'["1","2","3"]' # 步骤:bytes解码为字符串 → 解析为Python列表 → 遍历转int → 转元组 result = tuple(int(item) for item in literal_eval(data.decode())) print(result) # 输出:(1, 2, 3)
内容的提问来源于stack exchange,提问作者Pradip Thapa
相关产品推荐
相关产品推荐

