从API返回JSON提取errors字段至Python列表报错排查
问题分析与解决方案
错误根源
- f-string误用:你用
f''' '''定义JSON字符串,JSON里的{}会被f-string识别为格式化占位符,直接触发ValueError: Invalid format specifier。完全没必要用f-string,直接用普通三重引号字符串即可。 - JSON解析方法错误:
json.load()的参数是文件对象,用来读取文件中的JSON;要解析内存中的字符串,得用json.loads()方法。
修正后的代码
import json def testbobo(): # 去掉f-string,直接用普通三重引号定义JSON字符串 my_data = '''{ "apiStatusInfo": { "apiStatus": "Success", "apiStatusCode": 0 }, "errors": [ { "userEmail": "man.done.banner.com", "error": "Invalid input parameters in request" }, { "userEmail": "ban.super.banner.com", "error": "Invalid input parameters in request" } ] }''' # 用json.loads解析字符串 converter = json.loads(my_data) # 提取errors字段到列表 error_list = converter['errors'] # 验证结果 for error in error_list: print(error) testbobo()
执行结果
运行后会输出每个错误条目:
{'userEmail': 'man.done.banner.com', 'error': 'Invalid input parameters in request'} {'userEmail': 'ban.super.banner.com', 'error': 'Invalid input parameters in request'}
你可以直接用error_list这个变量来处理邮件发送逻辑。
内容的提问来源于stack exchange,提问作者Baba
相关产品推荐
相关产品推荐

