我从here中获取了这个脚本:
import csv
from itertools import izip
f = open( '/django/sw2/wkw2/csvtest1.csv', 'r' )
reader = csv.reader( f )
keys = ( "firm_url", "firm_name", "first", "last", "school", "year_graduated" )
out = []
for property in reader:
property = iter( property )
data = {}
for key in keys:
data[ key ] = property.next()
out += [ data ]
print out
当我在空闲状态下尝试时,我犯了错误
Traceback (most recent call last):
File "<pyshell#13>", line 5, in <module>
data [key] = property.next()
StopIteration
但我试过了
print out
一次又一次地打印出来
[{'school': 'The George Washington University Law School', 'last': 'Abbas', 'firm_url': 'http://www.whitecase.com/aabbas', 'year_graduated': ' 2005', 'firm_name': 'White & Case', 'first': ' Amr A '}, {'school': 'Ernst Moritz Arndt University Greifswald', 'last': 'Adam', 'firm_url': 'http://www.whitecase.com/kadam', 'year_graduated': ' 2004', 'firm_name': 'White & Case', 'first': ' Karin '}, {'school': 'Tashkent State Law Institute', 'last': 'Adjivefayev', 'firm_url': 'http://www.whitecase.com/vadjivefayev', 'year_graduated': ' 2002', 'firm_name': 'White & Case', 'first': ' Vilen '}]
但当我尝试将其作为脚本运行时,它不起作用,我会收到相同的错误消息。
有人能帮忙修正这个错误吗?
(它是否输出有效的json?)
谢谢
编辑
谢谢你的回答。这似乎不是将csv文件转换为json格式的正确方法。我只是想转换csv文件中的数据,以便使用loaddata
在django中填充sqlite3数据库。请参阅django group:http://groups.google.com/group/django-users/browse_frm/thread/a00b529ba2147d91中的此线程,以了解我尝试使用csv2json.py代码段的情况。和另一个线程今天在操作系统(抱歉,我不能包括2个链接)。我希望有一种简单的方法将csv转换为json。或者你用来填充django数据库的方法,我应该用它来代替。谢谢你的帮助。
有了CSV Module你已经有了一个dict reader内置!下面是一个可以用作命令行工具的示例脚本:
将嵌套的
for
循环更改为:而且,不,
print out
不会发出有效的JSON——使用print json.dumps(out)
(当然,您也需要import json
——这是一个Python 2.6标准库模块,但是如果您需要的话,您可以找到使用2.5的版本)。相关问题 更多 >
编程相关推荐