Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图理解Python中从CSV到JSON的转换_Python_Json_Csv - Fatal编程技术网

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

试图理解Python中从CSV到JSON的转换,python,json,csv,Python,Json,Csv,我正在将一个简短的CSV文件转换为JSON,以便稍后可以使用D3添加可视化。 该代码符合其目的,但我想了解它是如何工作的。它是从一个网站上获得的 问题1:DictReader是否返回DICT对象?当我试图打印返回对象时,它是一个reader对象;因此它无法打印,我无法对它进行搜索等操作 问题2:如何替换json.dumps。。。是否符合以下方法? 对于csv_读取器中的r: json_reader=json.dumps[r],indent=0Q1:DictReader返回一个reader对象-一

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

问题1:DictReader是否返回DICT对象?当我试图打印返回对象时,它是一个reader对象;因此它无法打印,我无法对它进行搜索等操作

问题2:如何替换json.dumps。。。是否符合以下方法? 对于csv_读取器中的r:
json_reader=json.dumps[r],indent=0

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


问题2:json.dumpslistrdr,缩进=0。。。[rdr]表示包含听写器的列表。

您的问题是有效的,但范围太广。为了理解所有底层操作,您必须了解Python的基础知识。在这种情况下,您需要了解继承DictReader extensed reader,迭代器reader是一个迭代器类,json和csv模块都使用它们。我不想投你的反对票,但这实在太宽泛了,无法回答,并按照文档提供的链接进行操作。提示:如果您对链的某个特定部分提出了您不了解的问题,那么它就适合堆栈溢出,您可能会得到高质量的答案。感谢您的回复。我正在阅读文档,没有完全理解它。您介意展示一下我如何在for循环中编写json\u reader=json.dumps[r for r in csv\u reader]吗?我尝试在csv_reader:json_reader=json.dumps[r]中输入r,但它在第一行被覆盖。谢谢,您可以使用stuff=[csv_reader中r代表r];json_reader=json.dumpsstuff,首先收集所有数据,然后转储。在循环中一次转储一个项目是错误的,或者至少是不同的,因为它创建了一个JSON对象流,而不是一个JSON对象。
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)