Я пытаюсь преобразовать ответ API от json в dataframe в пандах.у меня проблема в том, что данные de вложены в формате json, и я не получаю правильные столбцы в моем фрейме данных.
Данные собираются из API в следующем формате:
{
"data": [
{
"timestamp": "2019-04-10T11:40:13.437Z",
"score": 87,
"sensors": [
{
"comp": "temp",
"value": 20.010000228881836
},
{
"comp": "humid",
"value": 34.4900016784668
},
{
"comp": "co2",
"value": 418
},
{
"comp": "voc",
"value": 166
},
{
"comp": "pm25",
"value": 4
},
{
"comp": "lux",
"value": 961.4000244140625
},
{
"comp": "spl_a",
"value": 45.70000076293945
}
],
"indices": [
{
"comp": "temp",
"value": -1
},
{
"comp": "humid",
"value": -2
},
{
"comp": "co2",
"value": 0
},
{
"comp": "voc",
"value": 0
},
{
"comp": "pm25",
"value": 0
}
]
},
{
"timestamp": "2019-04-10T11:40:03.413Z",
"score": 87,
"sensors": [
{
"comp": "temp",
"value": 20.040000915527344
},
{
"comp": "humid",
"value": 34.630001068115234
},
{
"comp": "co2",
"value": 418
},
{
"comp": "voc",
"value": 169
},
{
"comp": "pm25",
"value": 5
},
{
"comp": "lux",
"value": 960.2000122070312
},
{
"comp": "spl_a",
"value": 46
}
],
"indices": [
{
"comp": "temp",
"value": -1
},
{
"comp": "humid",
"value": -1
},
{
"comp": "co2",
"value": 0
},
{
"comp": "voc",
"value": 0
},
{
"comp": "pm25",
"value": 0
}
]
},
отредактируйте, как вы можете видеть, это больше наборов данных
Я уже попробовал следующее: я преобразовал формат JSON в dict, а затем нормализовал его с помощью функции нормализации.см. следующий код:
data = r.json()
works_data = json_normalize(data=data['data'], record_path=['sensors'],meta=['timestamp'])
df = pd.DataFrame.from_dict(works_data)
print(df)
результат, который я получаю:
comp value timestamp
0 temp 21.059999 2019-04-10T12:39:05.062Z
1 humid 31.250000 2019-04-10T12:39:05.062Z
2 co2 407.000000 2019-04-10T12:39:05.062Z
3 voc 136.000000 2019-04-10T12:39:05.062Z
4 pm25 3.000000 2019-04-10T12:39:05.062Z
5 lux 1302.099976 2019-04-10T12:39:05.062Z
6 spl_a 46.299999 2019-04-10T12:39:05.062Z
мне нужен следующий результат: результат
есть кто-нибудь, кто может мне помочь?