Python (json_规范化)嵌套json
我正在尝试规范化一个json,它是嵌套的,但似乎无法正常工作 这是JsonPython (json_规范化)嵌套json,python,json,pandas,Python,Json,Pandas,我正在尝试规范化一个json,它是嵌套的,但似乎无法正常工作 这是Json "results": [ { "group": { "mediaType": "mail" }, "data": [ { "interval": "2020-01-20T23:00:00.000Z/2020-01-21T23:00:00.000Z", "metrics": [ {
"results": [
{
"group": {
"mediaType": "mail"
},
"data": [
{
"interval": "2020-01-20T23:00:00.000Z/2020-01-21T23:00:00.000Z",
"metrics": [
{
"metric": "nOf",
"stats": {
"count": 31
}
},
{
"metric": "tHa",
"stats": {
"max": 4115605,
"min": 47151,
"count": 30,
"sum": 36606219
}
}
]
}
]
}
我试过的是这个
from pandas.io.json import json_normalize
data = json_normalize(response_json, 'results', ['mediaType', 'interval', ['metrics', 'metric', ['stats']]])
我想要得到的是一个按mediaType
分组的df,并查看如下统计信息nOf.count
,tHa.max
等
提前谢谢 仅供参考,我使用此函数解决了此问题
def flatten_json(y):
out = {}
def flatten(x, name=''):
if type(x) is dict:
for a in x:
flatten(x[a], name + a + '_')
elif type(x) is list:
i = 0
for a in x:
flatten(a, name + str(i) + '_')
i += 1
else:
out[name[:-1]] = x
flatten(y)
return out
flat = flatten_json(response_json)
normalized_df = json_normalize(flat)
仅供参考,我使用此函数解决了此问题
def flatten_json(y):
out = {}
def flatten(x, name=''):
if type(x) is dict:
for a in x:
flatten(x[a], name + a + '_')
elif type(x) is list:
i = 0
for a in x:
flatten(a, name + str(i) + '_')
i += 1
else:
out[name[:-1]] = x
flatten(y)
return out
flat = flatten_json(response_json)
normalized_df = json_normalize(flat)
这有效率吗?这有效率吗?