Как сгенерировать JSON из файла CSV в Python? - PullRequest
0 голосов
/ 16 ноября 2018

Я пытаюсь построить структуру Json из файла CSV.Этот ниже код дает мне сообщение об ошибке: - AttributeError: 'tuple' object has no attribute 'to_json'.Я новичок в мире Python и хотел бы попросить вас помочь с этим.

Данные CSV выглядят так:

enter image description here

Я хочу, чтобы вывод был как ниже

[
    {"Variable": "Latitude",
    "Min": "78",
    "Q1": "89"} ,

    {"Variable": "Longitude",
    "Min": "78",
    "Q1": "89"},
    {"Variable": "Zip",
    "Min": "78",
    "Q1": "89"}
]

import pandas    
res_data = pd.read_csv("C\\Documents\\abc.csv", 'r')
abc=res_data.to_json(orient='records')
print(abc)

Ответы [ 3 ]

0 голосов
/ 16 ноября 2018
import json
import pandas as pd    
df = pd.read_csv("path_of_csv")
js = df.to_json(orient="records")
json.loads(js)

Выход:

[{'variable': 'Latitude', 'min': 26.84505, 'Q1': 31.19725},
 {'variable': 'Longtitude', 'min': -122.315, 'Q1': -116.558},
 {'variable': 'Zip', 'min': 20910.0, 'Q1': 32788.5}]
0 голосов
/ 16 ноября 2018

Вы можете попробовать просто использовать модуль csv.

import csv
import json

output_dict = []
with open('abc.csv') as csvfile:
    reader = csv.DictReader(csvfile)
    for row in reader:
        output_dict.append(row)

print json.dumps(output_dict)

output_dict будет содержать список элементов, включающих все строки.json.dumps преобразует python dict в json.

, и результат будет:

[{'variable': 'Latitude', 'min': 26.84505, 'Q1': 31.19725},
 {'variable': 'Longtitude', 'min': -122.315, 'Q1': -116.558},
 {'variable': 'Zip', 'min': 20910.0, 'Q1': 32788.5}]

Подробнее о csv.DictReader: введите описание ссылки здесь

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

Что-то вроде

import csv
import json

csvfile = open('file.csv', 'r')
jsonfile = open('file.json', 'w')

fieldnames = ("variable", "min", "Q1")
reader = csv.DictReader( csvfile, fieldnames)
for row in reader:
    json.dump(row, jsonfile)
    jsonfile.write('\n')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...