如何从 Python 中的 csv 文件生成 JSON?
Posted
技术标签:
【中文标题】如何从 Python 中的 csv 文件生成 JSON?【英文标题】:How to generate JSON from the csv file in Python? 【发布时间】:2019-04-19 10:17:02 【问题描述】:我正在尝试从 csv 文件构造一个 Json 结构。下面的代码给了我错误说明:-AttributeError: 'tuple' object has no attribute 'to_json'
。我是 python 世界的新手,想在这方面寻求您的帮助。
CSV 数据如下所示:
我希望输出如下所示
[
"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)
【问题讨论】:
这里的res_df
是什么?
【参考方案1】:
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]
【讨论】:
完美。简单而最好的【参考方案2】:类似
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')
【讨论】:
它可以工作,但不能生成正确的 json 结构。每行应该用逗号分隔,整个json应该包含在[]中【参考方案3】:您可以尝试简单地使用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 将包含包含所有行的 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
【讨论】:
以上是关于如何从 Python 中的 csv 文件生成 JSON?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 中的 argparse 和 csv 库编写文件?
从 CSV 文件生成 C++ 头文件的 python 脚本(用于数组声明)