我需要帮助,我不想从CSV文件打印标题。在
csvfile = open('testdata.csv', 'rU')
jsonfile = open('brofile.json', 'w')
fieldnames = {'Matric':[("studentName","dept","status")]}
reader = csv.DictReader( csvfile, fieldnames)
for row in reader:
json.dump(row, jsonfile)
jsonfile.write('\n')
预期产量
^{pr2}$CSV文件:
Matric Name Department Status
2010CS01 Jones Doe Computer Science Paid
2010CS02 James Rug Computer Science Paid
2010AC01 Curtis Payne Accounting Unpaid
您可以先用
csvfile.readline()
读取文件中的第一行,然后再将其发送给csv阅读器。这会将文件描述符推进到第二行(可以用csvfile.tell()
检查位置),因此应该在输出中省略头。在更新:
正如我在评论中提到的,您的输入数据有一个问题:没有明显的分隔符,它标记了列之间的边界(至少在您发布的数据中-只有空格)。如果使用逗号作为分隔符,则一切顺利:
数据:
^{pr2}$代码:
输出:
与其他注释一样,预期的输出不是有效的JSon。输出就是这个。在
转换输入数据
假设您的输入数据实际上是由制表符分隔的,当您在这里发布这些数据时,这些制表符已转换为空格,那么在分析csv时,您只需指定制表符作为分隔符:
如果您的输入数据实际上只有空格,您可以使用简单的sed将多个空格转换为逗号:
不能保证这会起作用-如果你的数据字段中有多个空格,它会把事情搞砸。在
要忽略您的csv文件调用
next()
的第一行,请执行以下操作:相关问题 更多 >
编程相关推荐