Python 3.6解码Mailchimp导出API响应及数据提取问题
处理Mailchimp导出API的非标准JSON响应
我完全懂你遇到的问题——这个Mailchimp导出API返回的不是标准JSON结构,而是首行标题+每行一个独立JSON对象的纯文本格式,直接用.json()方法肯定会报错,因为整个文本根本不是合法的JSON数组或对象。下面给你一套靠谱的处理方案:
核心处理思路
既然响应是按行分隔的特殊结构,我们就针对性地逐行处理:
- 先把响应文本按换行符拆分成单独的行
- 跳过第一行的标题内容
- 对剩下的每一行单独做JSON解析
完整代码示例
import requests import json # 发送请求获取纯文本响应 response_text = requests.get(urldetails).text # 将文本按换行分割成列表 response_lines = response_text.splitlines() # 跳过首行标题,遍历处理数据行 for line in response_lines[1:]: # 跳过可能存在的空行,避免解析报错 if not line.strip(): continue try: # 解析单行的JSON对象 record = json.loads(line) # 这里替换成你需要的业务逻辑,比如存储到数据库、转换格式等 print("处理记录:", record.get("email_address")) # 示例:打印邮箱字段 except json.JSONDecodeError as e: # 捕获解析错误,避免单个坏行导致整个脚本终止 print(f"⚠️ 解析行失败: {e}\n出错行内容: {line}")
额外实用提示
- 如果标题行包含有用的元信息(比如导出时间、数据字段说明),你可以单独提取
response_lines[0]来处理 - 一定要加异常捕获,API返回的行可能存在格式问题,避免脚本直接崩溃
- 如果数据量很大,可以考虑用
io.StringIO包装响应文本后逐行读取,减少内存占用
内容的提问来源于stack exchange,提问作者DBa
相关产品推荐
相关产品推荐

