【发布时间】:2021-09-27 18:04:04
【问题描述】:
我提出了一个 python 请求(curl),获得了这个 JSON 数组,我想将其转换为 Pandas Dataframe 甚至是 python 字典,以便稍后将其转换为 Pandas Dataframe,但没有任何效果......
当我尝试这样转换时:
import json
aDict = json.loads(response.text)
dataframe = pd.DataFrame.from_dict(aDict, orient="index")
编译器说:“AttributeError: 'list' object has no attribute 'values'”
response.text 的打印:
'[{"total":null,"items":[{"key":"time","label":"Time","value":"2021-07-14"},{"key ":"agent","label":"Agent","value":"name_of_agent"},...
【问题讨论】:
-
您的
aDict不是字典而是列表? -
您正在传递
pd.DataFrame.from_dict一个列表,而不是一个字典,这是行不通的。相反,您应该做什么取决于数据的结构。您能否发布其余的响应文本,或者至少发布它的结尾,以便我们可以看到总体结构? -
在JSON库docs中有一个转换表。看到一个 JSON 数组被反序列化为一个 Python 列表。要将 JSON 导入字典以使用 pandas 进行处理,请调用
aDict[0]。 -
如果没有看到 json 对象的完整结构就很难判断。但你可以试试
df = pd.json_normalize(aDict, 'items')。 -
@Timus 是的,我的 aDict 是一个字典列表