调用json.dumps转换列表得到字符串而非数据字典的问题如何解决
错误原因
json.dumps()的作用是将Python字典/列表对象序列化为JSON格式字符串,调用后必然返回字符串类型,无法通过该方法得到字典对象。requests.get(url).json()已经内置了JSON反序列化逻辑,会自动将接口返回的JSON字符串转换为Python对应的列表/字典对象,无需额外调用json.loads()处理。如果调用.json()后得到的是字符串类型,说明接口返回的是双层序列化的JSON内容,直接取原始响应文本处理即可。- 原有代码缺失
requests库导入,运行会直接报错。
修正后可运行代码
import requests import json url = 'https://www.sberbank.hr/umbraco/api/ExchangeRates/GetRates?dateString=1633159401811' # 获取原始响应字符串 raw_response = requests.get(url).text # 反序列化为Python对象(列表/字典) data_obj = json.loads(raw_response) print(type(data_obj)) # 此时data_obj就是你需要的列表/字典类型数据,可以直接操作
补充说明
如果接口返回的JSON结构最外层是对象格式,data_obj就是字典类型;如果最外层是数组格式,data_obj就是列表类型,可根据实际业务需求取对应字段即可。
内容的提问来源于stack exchange,提问作者sitni
相关产品推荐
相关产品推荐

