如何从bytes类型数据中提取指定字段值?
解决bytes数据中提取JSON字段的问题
问题原因
你碰到的TypeError是因为bytes类型是字节序列,只能通过整数或切片索引访问单个字节,没法像字典那样用字符串键取值。而data[0]返回的123是ASCII码值,对应你数据开头的{字符(ASCII编码里{的数值就是123)。
解决方案
你的bytes数据本质是JSON格式的字节流,得先转成字符串,再解析成Python字典,才能提取目标字段:
- 把bytes解码为字符串:用
decode()方法,默认用utf-8编码就行(JSON标准编码) - 将字符串解析为字典:用
json.loads()方法把JSON字符串转成可操作的Python字典 - 提取目标数值:通过字典键
'recordsFiltered'直接获取对应值
完整代码示例
import json # 假设你的bytes数据存在变量data中 # 第一步:解码bytes为字符串 json_str = data.decode('utf-8') # 第二步:解析为字典 data_dict = json.loads(json_str) # 第三步:提取目标数值 records_filtered = data_dict['recordsFiltered'] print(records_filtered) # 输出:84
注意事项
- 如果解码时出现编码错误,可以试试指定其他常见编码(比如
'utf-16'),但绝大多数JSON数据用utf-8就能正常解码。 - 要确保你的bytes数据是完整的JSON结构(你提供的示例末尾有个逗号,应该是截断的,只要整体结构完整就能正常解析)
内容的提问来源于stack exchange,提问作者jacques
相关产品推荐
相关产品推荐

