【发布时间】:2020-11-04 09:55:33
【问题描述】:
我有 10K 个文件夹,每个文件夹有 200 个 JSON 格式文件中的 200 条记录。 尝试将所有记录编译成一个数据框,然后最终编译成 CSV(欢迎其他格式建议)
这是我的工作解决方案,仅用于数据框构建过程大约需要 8.3 小时。 (不转换成 CSV)
%%time
finalDf = pd.DataFrame()
rootdir ='/path/foldername'
all_files = Path(rootdir).rglob('*.json')
for filename in all_files:
with open(filename, 'r+') as f:
data = json.load(f)
df = pd.json_normalize(data).drop(columns=[A]).rename(columns={'B': 'Date'})
finalDf = finalDf.append(df, ignore_index=True)
任何优化这个并缩短时间的建议。
【问题讨论】:
-
我发现了类似的帖子。试试这个怎么样? stackoverflow.com/questions/27407430/…
-
是的,将尝试使用 Ultra JSON。但不是很乐观。
-
你在哪个平台上?这需要在 Windows 上运行吗?
-
目标只是编写 CSV 还是要先处理完整的 DF?
-
还有其他更快的序列化例如feather、parquet、hdf文件系统。根据您希望长期处理数据的方式,像 mongdb 这样的 nosql 解决方案甚至是好的 ole sql 都是不错的选择。导入这些 json 后,您就拥有了丰富的查询功能,如果随着时间的推移会随着更多 json 的增长而增长,请继续导入更多的数据。
标签: python json dataframe optimization