首页 > 解决方案 > 使用python的CSV到JSON问题

问题描述

import csv
import json
csv_file = 'data.csv'
json_path = 'data.json'

data1 = {}

with open(csv_file) as data_csv:
    csvRead = csv.DictReader(data_csv)
    for csvrows in csvRead:
        id = csvrows['row_id']
        data[id] = csvrows

# Creating Multiple JSON files of 1000 rows each
i = 0
while i < len(data):
    data_file = dict(list(data.items())[j:j+1000])
    with open(json_path + "data" + str(j) + ".json", 'w') as data_json:
        data_json.write(json.dumps(data1, indent=4))
    i = i + 1000

问题是我得到的输出为

[ "1": { "id": 1, "name": "Smitraj", "Lastname":"Raut" } ] 

但我不希望它采用这种格式。我需要格式为

[{ "id": 1, "name": "Smitraj", "Lastname":"Raut" } ]

标签: pythonjsoncsv

解决方案


试试这个。而不是字典将您的项目附加到列表并将其写入文件。

import csv
import json
csv_file = 'data.csv'
json_path = 'data.json'

data = []

with open(csv_file) as data_csv:
    csv_reader = csv.DictReader(data_csv)
    for csvrows in csv_reader:
        data.append(csvrows)

with open(json_path, 'w') as data_json:
    data_json.write(json.dumps(data,indent=4))

推荐阅读