如何通过Pythonpandas读取多级JSON文件?
How to read multiple levels of JSON file through Python pandas?
我正在尝试读取一个 JSON 文件,其中的数据处于不同的级别,即顶部 --> 内部 --> 最内部。
我试过 pd.json_normalization
,但我认为它不起作用。我附上了截图。因为最顶层是"WTFY_Combined"
,里面还有三层数据。因此,在级别之外,我需要读取以黄色标记的“OccuMa”,然后在“OccuMa”中,还有另一级别的数据“OccuCode”和“OccuDesc”。我需要在两个不同的数据框中读取这两个级别。
我知道一种方法是将这两个放在两个不同的 JSON 文件中,但实际上,我将有这样的多层次结构来阅读。
我正在尝试以下代码:
import pandas as pd
import json as js
with open ("filepath", "r") as f:
data = js.loads(f.read())
df_flat = pd.json_normalize(data, record_path=['OccuCode'])
df_flat2 = pd.json_normalize(data, record_path=['OccuDesc'])
但是,它不起作用,它给出了 "keyerror"
,原因很明显,我无法将数据正确映射到数据帧中。
import pandas as pd
import json as js
with open ("filepath", "r") as f:
json_data = js.loads(f.read())
json_data = json_data['WTYF_Combined']['Extraction']['abc']['OccuMa']
df_data = pd.DataFrame(json_data)[['OccuCode','OccuDesc']]
我正在尝试读取一个 JSON 文件,其中的数据处于不同的级别,即顶部 --> 内部 --> 最内部。
我试过 pd.json_normalization
,但我认为它不起作用。我附上了截图。因为最顶层是"WTFY_Combined"
,里面还有三层数据。因此,在级别之外,我需要读取以黄色标记的“OccuMa”,然后在“OccuMa”中,还有另一级别的数据“OccuCode”和“OccuDesc”。我需要在两个不同的数据框中读取这两个级别。
我知道一种方法是将这两个放在两个不同的 JSON 文件中,但实际上,我将有这样的多层次结构来阅读。
我正在尝试以下代码:
import pandas as pd
import json as js
with open ("filepath", "r") as f:
data = js.loads(f.read())
df_flat = pd.json_normalize(data, record_path=['OccuCode'])
df_flat2 = pd.json_normalize(data, record_path=['OccuDesc'])
但是,它不起作用,它给出了 "keyerror"
,原因很明显,我无法将数据正确映射到数据帧中。
import pandas as pd
import json as js
with open ("filepath", "r") as f:
json_data = js.loads(f.read())
json_data = json_data['WTYF_Combined']['Extraction']['abc']['OccuMa']
df_data = pd.DataFrame(json_data)[['OccuCode','OccuDesc']]