【问题标题】:Creating individual JSON files from a CSV file that is already in JSON format从已经是 JSON 格式的 CSV 文件创建单个 JSON 文件
【发布时间】:2022-01-23 18:59:05
【问题描述】:

我的 CVS 文件中有 JSON 数据,我需要将其拆分为单独的 JSON 文件。数据如下所示:{"EventMode":"","CalculateTax":"Y",...。这有多行,我希望每一行都是一个单独的 JSON 文件。我使用了 Jatin Grover 提供的将 CVS 解析为 JSON 的代码:

lcount = 0
  out = json.dumps(row)
  jsonoutput = open( 'json_file_path/parsedJSONfile'+str(lcount)+'.json', 'w')
  jsonoutput.write(out)
  lcount+=1

这做得很好,问题是它在 {"EventMode... 之前添加了 "R": " 并在每个元素之间添加了额外的 \ 以及最后的项目。

CVS 文件的每一行都已经是有效的 JSON 对象。我只需要将每一行分成一个扩展名为 .json 的单独文件。

我希望这是有道理的。我对这一切都很陌生。

【问题讨论】:

    标签: json csv csvtojson


    【解决方案1】:

    从您的图片中看不清楚您的 CSV 实际是什么样子。

    我用如下所示的 JSON 行模拟了一个非常小的 CSV:

    Request
    "{""id"":""1"", ""name"":""alice""}"
    "{""id"":""2"", ""name"":""bob""}"
    

    (所有双引号用于转义作为 JSON 一部分的引号)

    当我运行这个小脚本时:

    import csv
    
    with open('input.csv', newline='') as input_file:
        reader = csv.reader(input_file)
        next(reader)  # discard/skip the fist line ("header")
    
        for i, row in enumerate(reader):
            with open(f'json_file_path/parsedJSONfile{i}.json', 'w') as output_file:
                output_file.write(row[0])
    

    我得到两个文件,json_file_path/parsedJSONfile0.jsonjson_file_path/parsedJSONfile1.json,看起来像这样:

    {"id":"1", "name":"Alice"}
    

    {"id":"2", "name":"bob"}
    

    请注意,我没有使用json.dumps(...),这仅在您从 Python 中的数据开始并希望将其保存为 JSON 时才有意义。您的文件只有完整的 JSON 文本,因此基本上将每一行按原样复制粘贴到一个新文件中。

    【讨论】:

    • 谢谢扎克。那工作得很好。我想我不需要将数据转换为 JSON,因为它已经是那种格式,但我不知道如何从每一行创建单个文件。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2020-10-01
    • 2012-10-14
    • 1970-01-01
    • 2021-04-11
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多