如何在python中将csv转换为json?

如何在python中将csv转换为json?,python,json,csv,Python,Json,Csv,我对编程非常陌生,在过去的3/4周里一直在学习python 这是指定的作业之一 输入 A、B、C、D 1, 2, 3, 4 5, 6, 7, 8 输出 {{A:“1”,B:“2”,C:“3”,D:“4”},{A:“5”,B:“6”,C:“7”,D:“8”} 我一直在尝试以下代码: import csv import json csvfile = open('test.csv','r') jsonfile = open('test.json','w') x = ("a","b","c","

我对编程非常陌生,在过去的3/4周里一直在学习python 这是指定的作业之一

输入

A、B、C、D
1, 2, 3, 4
5, 6, 7, 8
输出

{{A:“1”,B:“2”,C:“3”,D:“4”},{A:“5”,B:“6”,C:“7”,D:“8”}
我一直在尝试以下代码:

import csv
import json

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

x = ("a","b","c","d")

reader = csv.DictReader(csvfile, x)
for row in reader:
    json.dump(row, jsonfile)
此代码的输出如下所示:

{“a”:“1”、“null”:[“5”、“6”、“7”、“8”、“9”],“c”:“3”、“b”:“2”、“d”:“4”}

有人能帮我吗?

处理整行后转储



您可以使用以下代码进行尝试:

def inputfunction(lists):
 tmpdict = {}
 for element_index in range(len(lists)):
     tmpdict[headers[elementindex]] = lists[element_index]
 return tmpdict

def run(filename):
 filelist = [eachline.split(',') for eachline in open(inputfile,'r')]
 headers = filelist[0]
 values = filelist[1:]
 finallist = []
 for lists in values:
     finallist.append(inputfunction(lists))
 return finallist

将CSV转换为Json Python

import csv
import urllib2

url = '<YOURCSVURL>'
response = urllib2.urlopen(url)
cr = csv.reader(response)

line = {}
data = []

for index, row in enumerate(cr):
    if index:
        for index, col in enumerate(row):
            line[name[index]] = col

        data.append(line.copy())
    else:
        name = row

print data
导入csv
导入urllib2
url=“”
response=urlib2.urlopen(url)
cr=csv.reader(响应)
行={}
数据=[]
对于索引,枚举中的行(cr):
如果索引:
对于索引,枚举中的列(行):
行[名称[索引]]=列
data.append(line.copy())
其他:
名称=行
打印数据

对于喜欢单行程序的人:

import csv
import json

json_data = [json.dumps(d) for d in csv.DictReader(open('file.csv'))]
检查此小提琴以获得一个工作示例:

输入不是csv。输出不是有效的json。你是说字典目录吗<代码>[{A:“1”,B:“2”,C:“3”,D:“4”},{A:“5”,B:“6”,C:“7”,D:“8”}]对不起。。!!是的,这是一份口述清单,我刚试过,但没用。输出如下[{“A,B,C,D”:“1,2,3,4”},{“A,B,C,D”:“5,6,7,8”},{},{},{}]@naren,我在发布之前进行了测试。它创建了一个文件
test.json
,其中包含
[{“a”:“1”,“C”:“3”,“B”:“2”,“D”:“4”},{“a”:“5”,“C”:“7”,“B”:“6”,“D”:“8”}]
作为内容。明白了,thanq非常@falsetru,相信你的指导会让我在这方面出类拔萃python@naren,您的输入文件与问题中的输入不匹配。@falsetru您不是在重新设计问题吗?谢谢。你答案中的代码没有正确缩进。此外,在
run()
函数末尾的
for
循环中,您的
return
将只允许循环执行一次迭代。1:未正确缩进。2:您只是为每个列表创建了一个非JSON格式的字典。3:您必须在“输入函数”中传递“headers”和一个参数。4:在run函数中,您必须将“filename”参数更改为“inputfile”,反之亦然。这种方法使每个键的数值(int,float)变为string。有什么办法解决这个问题吗?
import csv
import urllib2

url = '<YOURCSVURL>'
response = urllib2.urlopen(url)
cr = csv.reader(response)

line = {}
data = []

for index, row in enumerate(cr):
    if index:
        for index, col in enumerate(row):
            line[name[index]] = col

        data.append(line.copy())
    else:
        name = row

print data
import csv
import json

json_data = [json.dumps(d) for d in csv.DictReader(open('file.csv'))]