首页 > 解决方案 > Python中JSON的递归添加/格式化

问题描述

我目前有以下格式的 1000 个 JSON,每个用于单个员工:

        "A": "A_text",
        "B": "Datetime stamp of record",
        "ID": "123",
        "FeatureList": {
            "Salary": 100000,
            "Age": 45,
            "Work Ex": 15,
                       }
         }

我的目标是将这些文件递归连接到一个 df 中(见下文):

在此处输入图像描述

在我当前的解决方案中:我可以在格式化后递归地添加所有文件:

rootdir ='/folderpath/filename'
all_files = Path(rootdir).rglob('*.json')

我能够读取文件并将其转置如下:

df = pd.read_json('data.json')
df = df.transpose()

但是,如果我删除或创建新列,则类似于“FeatureList”的数组缓冲区会创建扭曲的方向。

在此处输入图像描述

关于我的方法的任何建议都会有帮助。谢谢

标签: pythonjsonpandasdataframe

解决方案


如果那是您的 json,那么您可以使用json_normalize

with open('1.json', 'r+') as f:
    data = json.load(f)

df = pd.json_normalize(data).drop(columns=['A']).rename(columns={'B': 'Date'})
print(df)

                       Date   ID  FeatureList.Salary  FeatureList.Age  FeatureList.Work Ex
0  Datetime stamp of record  123              100000               45                   15

推荐阅读