Python字节串列表求和方法及sum(a)返回423原因解析
直接调用
sum(a)得到423的原因 a = b'[10,20]'是bytes类型的字节串,并非存储了10、20两个整数的列表。- Python迭代bytes对象时,逐个返回的是每个字节对应的ASCII整数值(取值范围0~255),不会自动解析字节中承载的文本语义。
- 对
b'[10,20]'包含的所有字节取ASCII值求和,结果恰好为423:
各字节对应数值:[对应91、1对应49、0对应48、,对应44、2对应50、0对应48、]对应93
累加计算:91 + 49 + 48 + 44 + 50 + 48 + 93 = 423
正确对内容中数值求和的方法
返回的字节串是标准JSON格式的数组内容,按以下步骤处理即可:
- 将bytes字节串按对应编码解码为普通字符串(通常接口返回用utf-8编码)
- 将JSON格式的字符串解析为Python整数列表
- 对解析得到的列表调用
sum()计算总和
参考实现代码:
import json a = b'[10,20]' # 解码字节串并解析为数值列表 num_list = json.loads(a.decode("utf-8")) # 计算求和 result = sum(num_list) print(result) # 输出正确结果30
如果接口返回使用其他编码,将decode()方法的参数替换为对应编码名称即可,比如gbk。
内容的提问来源于stack exchange,提问作者cassanate99
相关产品推荐
相关产品推荐

