如何在AWS Lambda中解析带b'的JSON并校验success字段
解决方法
首先,你看到的b'...'是Python里的**字节串(bytes)**类型标识,requests返回的response.content就是字节格式的响应体,得先转成JSON对象才能正常访问字段。
直接修改你的代码即可,步骤如下:
- 用
response.json()方法解析响应:这个方法会自动完成字节转字符串、JSON格式解析的工作,比手动处理更可靠。 - 遍历解析后的列表,逐个检查
success字段:注意Python里的布尔值是True/False(首字母大写),和JSON里的true/false大小写不同,代码里写错会报错。
修正后的完整代码:
import requests response = requests.request("PATCH", url, headers=headers, data=body) print('here...', response.content) # 打印字节串仅用于调试查看 if response.status_code == 200: # 直接解析响应为Python列表对象 results = response.json() # 遍历每个返回的结果对象 for result in results: # 用Python的布尔值False判断,或者直接用not取反 if not result["success"]: raise Exception('Error. Check SF size fields...')
关键细节说明
- 不要手动处理
response.content,requests内置的response.json()是专门为JSON响应设计的,能避免编码、格式转换的坑。 - 必须区分Python和JSON的布尔值写法:Python用
True/False,JSON用true/false,代码里混用会导致逻辑错误。 - 解析后的结果是一个列表,每个元素是包含
id、success的字典,直接遍历列表并访问字典字段即可完成校验。
内容的提问来源于stack exchange,提问作者JaimeGonzalez
相关产品推荐
相关产品推荐

