ниже моя структура json
{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"env":"allahabad","instance":"10.45.69"},"values":[[16080,"79.03999999999844"],[1608,"85.866666666668"]}}
все вышеперечисленное json находится в одной строке
Я хочу преобразовать его в фрейм данных, который похож на
data__result__metric__env|data__result__metric__instance|data__result__values__001|data__result__values__002
allahabad |10.45.69 |16080 |79.03999999999844
Как упоминалось в моем комментарии, мне не совсем понятно, как должен выглядеть ваш ожидаемый результат. Я предполагаю, что вы ищете решение с двумя столбцами значений.
С вашими данными json (мне кажется, что в вашем примере отсутствуют некоторые закрывающие скобки\скобки)
json_data = {"status":"success","data":{"resultType":"matrix","result":[{"metric":{"env":"allahabad","instance":"10.45.69"},"values":[[16080,"79.03999999999844"]]]}]}}
этот
data = json_data['data']['result'][0]
df_data = {f'data__result__metric__{key}': [value] * len(data['values'])
for key, value in data['metric'].items()}
df_data.update((f'data__result__values__00{i + 1}', values)
for i, values in enumerate(zip(*data['values'])))
df = pd.DataFrame(df_data)
дает вам следующий фрейм данных df
:
data__result__metric__env data__result__metric__instance \
0 allahabad 10.45.69
1 allahabad 10.45.69
2 allahabad 10.45.69
...
13 allahabad 10.45.69
data__result__values__001 data__result__values__002
0 16080 79.03999999999844
1 16080 85.866666666668
2 16080 85.866666666668
...
13 16080 82.21000000000095
Это немного неясно: вы хотите (а) только 2 столбца
data__result__values
и значения, заполненные в этих столбцах, или (б) 28 столбцов значений? Если (а): Чем должны быть заполнены первые два столбца после первой строки?