python - 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”的数组缓冲区会创建扭曲的方向。
关于我的方法的任何建议都会有帮助。谢谢
解决方案
如果那是您的 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
推荐阅读
- javascript - 从流音频节点js中删除高频声音
- php - 尝试更新 codeigniter 中的多个表的语法错误
- ios - 试图通过低功耗蓝牙控制树莓派 3 GPIO 上的风扇
- php - ZF3 FormElementManager:如何获取 ServiceManager
- python - 将 Voronoi 图渲染到 numpy 数组
- c# - 在类中为 Nunit 测试设置私有变量
- javascript - 我承诺正确链接吗?
- c# - Create 2 separate instances of the same prefab
- delphi - Why are const record parameters passed by value?
- java - Java 8 - how to get multiple attributes of an object from a List?