python - CSV 到 JSON 脚本

标签 python json csv

我从 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

当我在 IDLE 中尝试时,我得到了错误

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 组中查看此线程:http://groups.google.com/group/django-users/browse_frm/thread/a00b529ba2147d91因为我尝试使用 csv2json.py 片段。今天在操作系统中还有另一个线程(抱歉,我不能包含 2 个链接)。我希望有一种将 csv 转换为 json 的简单方法。或者你用来填充我应该使用的 django 数据库的方法。感谢您的帮助。

最佳答案

将嵌套的 for 循环更改为:

out = [dict(zip(keys, property)) for property in reader]

并且,不,print out 不会发出有效的 JSON——使用 print json.dumps(out)(您需要import json 当然也是——这是一个 Python 2.6 标准库模块,但如果您需要的话,您可以找到适用于 2.5 的版本。

关于python - CSV 到 JSON 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1884395/

相关文章:

python - 防止pandas数据框标题行在for语句中重复

json - Post/Put/Delete http Json with additional parameters in Jersey + 一般设计问题

java - Spring REST中如何接收多个参数值并返回JSON格式的数据?

Python通过存储在csv中的链接下载文件

python - 从一系列唯一值创建多维列表

php - 如何让PHP输出声音(哔)?

ios - 如何更改 JSON key 名称 Swift?

sql-server - CSV 文件格式更改

python - 在 Python 中将 .CSV 文件转换为 .DTA 文件

python - 为什么控制台卡在我用 python 解决 9X9 数独板的最后一个函数上?