【发布时间】:2023-01-18 05:20:15
【问题描述】:
以下架构中的 API 请求有一个 json 响应:
[
{
"id": "1",
"variable": "x",
"unt": "%",
"results": [
{
"classification": [
{
"id": "1",
"name": "group",
"category": {
"555": "general"
}
}
],
"series": [
{
"location": {
"id": "1",
"level": {
"id": "n1",
"name": "z"
},
"name": "z"
},
"serie": {
"202001": "0.08",
"202002": "0.48",
"202003": "0.19"
}
}
]
}
]
}
]
我想将数据从 "serie" 键转换为 pandas DataFrame。
我可以明确地做到这一点:
content = val[0]["results"][0]["series"][0]["serie"]
df = pd.DataFrame(content.items())
df
0 1
0 202001 0.08
1 202002 0.48
2 202003 0.19
但是如果有多个记录,由于位置参数[0],那将只能从第一个元素获取数据。
有没有办法在不考虑位置参数的情况下检索该数据?
【问题讨论】:
-
您是否正在寻找类似 -
pd.json_normalize(data, ['results', ['series']])的内容,其中data是您的 json 响应? -
在那种情况下,数据将以不同的列出现,但我希望它以行的形式出现。怎么才能换行呢?
标签: python pandas python-requests