0

我在 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 扩展名的单独文件。

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

4

1 回答 1

0

从您的图片中不清楚您的 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 文本,因此基本上将每一行按原样复制粘贴到一个新文件中。

于 2021-12-22T21:28:35.923 回答