试图理解Python中从CSV到JSON的转换

时间:2014-05-03 04:18:13

标签: python json csv

import csv
import json
import sys

csv_file = open('a1.csv','rU')

fields = ["bacteria", "Penicillin", "Streptomycin", "Neomycin", "Gram_Staining"]
csv_reader = csv.DictReader(csv_file, fields)
json_file = open('json_out.json', 'w')

json_reader = json.dumps([r for r in csv_reader], indent=0)
jsontodict = json.loads(json_reader)
json_file.write(json_reader)

我正在将一个简短的CSV文件转换为JSON,以便稍后我可以使用D3添加可视化。 代码服务于其目的,但我想了解它是如何工作的。 (它是从网站上获得的)

Q1:DictReader是否返回DICT对象?当我试图打印返回对象时,它是一个“读者”对象;因此它是不可打印的,我无法操作它(搜索等)。

Q2:如何用以下方法替换json.dumps(...)行?      对于csv_reader中的r:     json_reader = json.dumps([r],indent = 0)

1 个答案:

答案 0 :(得分:0)

Q1:DictReader返回一个reader对象 - 一个迭代器,它在每次迭代时返回一个dict。您无法直接打印,但如果需要,list(rdr)会将其转换为列表。

Q2:json.dumps(list(rdr),indent = 0)... [rdr]表示包含DictReader的列表。