Python如何解析多个同名JSON数组 遍历获取全部条目内容
问题根源
你没有对requests返回的响应对象做JSON解析,直接遍历Response对象时迭代的是原始响应的字节流,不是结构化的数组数据,因此无法正确拿到所有条目。
正确实现
调用响应对象的.json()方法,会自动把接口返回的JSON文本解析为Python原生的列表、字典结构,之后再遍历列表就能拿到所有条目的message字段:
import requests def check_messages(): resp = requests.get(urlWhereIGetJson) # 解析JSON为Python列表,对应接口返回的最外层数组 data = resp.json() for d in data: message = d['envelope']['data']['message'] print(message)
可选优化
如果需要兼容接口请求失败的场景,可以增加状态码校验,避免接口返回非JSON内容时抛出解析错误:
import requests def check_messages(): resp = requests.get(urlWhereIGetJson) # 状态码非200类时直接抛出异常 resp.raise_for_status() data = resp.json() for d in data: message = d['envelope']['data']['message'] print(message)
你提供的源JSON结构本身是标准合法的数组结构,不需要修改源文件,只要补上JSON解析步骤即可正常获取所有条目内容。
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

