Обработка вложенного dict и перечисление Json в DataFrame - PullRequest
0 голосов
/ 29 ноября 2018

У меня есть объект json, подобный этому:

[{"ID": "101",
  "OagCode": "1000",
  "house": [{"from": [{"CneeCode":"30100"}], "ShprCode": "20100"}]},
 {"ID": "102",
  "OagCode": "1001",
  "house": [{"from": [{"CneeCode":"30101"}], "ShprCode": "20101"},
            {"from": [{"CneeCode":"30102"}], "ShprCode": "20102"},
            {"from": [{"CneeCode":"30103"}], "ShprCode": "20103"}]}]

Я хочу преобразовать этот json в кадр данных таким образом, чтобы внутренний список расширялся и формировал кадр данных с правильными значениями следующим образом:

+-----+---------+----------+----------+
| ID  | OagCode | CneeCode | ShprCode |
+-----+---------+----------+----------+
| 101 | 1000    | 30100    | 20100    |
| 102 | 1001    | 30101    | 20101    |
| 102 | 1001    | 30102    | 20102    |
| 102 | 1001    | 30103    | 20103    |
+-----+---------+----------+----------+

Есть ли способ преобразовать вышеуказанный json в dataframe без использования циклов?Я пробовал Ориент , и это не работает.

1 Ответ

0 голосов
/ 29 ноября 2018

Использование json_normalize:

from pandas.io.json import json_normalize

df = json_normalize(j,record_path='house',meta=['ID','OagCode'])
print (df)
  CneeCode ShprCode   ID OagCode
0    30100    20100  101    1000
1    30101    20101  102    1001
2    30102    20102  102    1001
3    30103    20103  102    1001
...