Преобразование файла CSV в файл JSON с использованием Python - PullRequest
0 голосов
/ 21 октября 2018

Я пытался преобразовать CSV-файл в JSON с Python 3. Я хочу преобразовать CSV-файл, который выглядел бы примерно так:

Key ,Field_1 ,Field_2 ...
0   ,a       ,e       ...
1   ,b       ,f       ...
2   ,c       ,g       ...
3   ,d       ,h       ...

В структурированный файл JSONКлюч: [Field_1, Field_2, ...]

Так что приведенный выше CSV будет выглядеть как

{
  "0" : ["a", "e", ...]
  "1" : ["b", "f", ...]
  "2" : ["c", "g", ...]
  "3" : ["d", "h", ...]
}

Я пытался использовать приведенный ниже код, но не смогзаполните недостающие части, например, присваивая каждое значение соответствующей части в файле json.

csv = pd.read_csv("file.csv")
n = 0
length = # number of keys
for i in csv:
    if n == 0:
        for y in range(lentgh):
            # Assign as the header
    else:
        for y in range(length):
            # Assign as the properties
    n += 1

Также я пытаюсь сделать так, чтобы все новые данные автоматически прикреплялись в конце файла json.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Это должно делать то, что вы хотите.

import csv
import json

csvfile = open('C:\\your_path\\file.csv', 'r')
jsonfile = open('C:\\your_path\\file.json', 'w')

fieldnames = ("ID","Name","Address","State")
reader = csv.DictReader(csvfile, fieldnames)
for row in reader:
    json.dump(row, jsonfile)
    jsonfile.write('\n')
0 голосов
/ 21 октября 2018

json будет делать отступ в списках значений, но это преобразует ваш CSV в словарь, который вы хотите, и добавьте его в файл JSON

import csv
import json

with open('blah.csv') as f:
    reader = csv.reader(f)
    next(reader)
    d = dict((rows[0], rows[1:]) for rows in reader)

with open('blah.json', 'a') as f:
    json.dump(d, f, indent=4)
...