如何在Python中从csv文件生成JSON?

时间:2018-11-16 08:43:41

标签: python json python-3.x python-2.7 pandas

我正在尝试从csv文件构造一个Json结构。下面的代码为我提供了错误说明:-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 :(得分:3)

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}]

答案 1 :(得分:0)

类似

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')

答案 2 :(得分:0)

您可以尝试简单地使用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的更多详细信息:enter link description here