Python获取API返回JSON后查找字段报JSONDecodeError如何解决
问题解决方法
错误根源
- 调用
response.json()后已经得到Python原生字典对象,不需要额外转字符串后二次调用json.loads() - Python字典转字符串默认会把键的双引号转为单引号,不符合JSON格式要求,二次解析自然会抛出格式错误
修正后的代码
import requests data = requests.get('[api]', headers={ "[api key name]" : "[api key]" }) # 已经是解析完成的字典,直接取值即可 dataJson = data.json() amt = dataJson['data']['inventory']['object_name']['amount']
可选优化写法
如果不确定层级键是否一定存在,可以保留get()方法避免抛出KeyError:
amt = dataJson.get('data', {}).get('inventory', {}).get('object_name', {}).get('amount')
如果某层级键不存在,amt最终会返回None,不会直接中断程序运行。
内容的提问来源于stack exchange,提问作者Alpacaception
相关产品推荐
相关产品推荐

