首页 > 解决方案 > 将多个 json 文件转换为单个 csv 文件

问题描述

我有数千个 json 文件,我需要将它们组合成一个 csv 文件。示例 json 文件:https ://www.codepile.net/pile/dZGybzwy

我正在尝试使用 python 脚本来执行此操作,因为我将使用以下结构将 json 文件集保存在单独的文件夹中:/Saved/09_24_2020_15_05_5_Town03/targets、/Saved/09_22_2020_15_58_8_Town03/targets 等(json 文件是位于目标文件夹中)并且想使用一个标志来选择我需要来自哪个文件夹的 json 文件。

我提到了此处已经提出的类似问题,例如将 json 文件保存到一个 csv并将多个 .txt 文件转换为单个 .csv 文件(python),但我遇到的问题是创建的 .csv 文件确实没有任何 json 文件的内容。我还希望 csv 文件与 Saved 中的父文件夹同名,例如 09_24_2020_15_05_5_Town03.csv

这是我写的代码:

import pandas as pd
import json
import csv
import argparse
import os
import os.path

from carlahelp.filehelp import read_json

df = pd.DataFrame()
for file in os.listdir('Saved/'):
    if file.endswith('.json'):
        frame=pd.read_json(...)
        df = df.append(frame, ignore_index=True)

if __name__=="__main__":
    data_dir = 'Saved/'
    all_recordings = os.listdir(data_dir)
    if len(all_recordings)==0:
        print("No recordings found in Saved/ folder")
        exit()

    parser = argparse.ArgumentParser()
    #default to latest recording if none specified
    parser.add_argument('-r', '--recording', type=str, default=all_recordings[-1])
    args = parser.parse_args()

    print("Saving to csv {} from {}")
    df.to_csv(os.path.join(data_dir,args.recording+'.csv'))

我正在使用 Ubuntu 18。非常感谢任何帮助和建议 :) 谢谢!

标签: pythonjsoncsv

解决方案


推荐阅读