python转csv到jason_在Python中将CSV转换为Json

假设你有这样的数据:feature, r, feature, r

word1, freq1, word2, freq2

word3, freq3, word4, freq4

如果允许我使用自己的库,这里有一个图解解决方案:>>> import pyexcel

>>> r=pyexcel.SeriesReader("sample.csv")

>>> r[0]

['word1', ' freq1', ' word2', ' freq2']

>>> r[1]

['word3', ' freq3', ' word4', ' freq4']

>>> r.series()

['feature', ' r', ' feature', ' r']

>>> r.column_at(0)

['word1', 'word3']

>>> r.column_at(1)

[' freq1', ' freq3']

>>> r.column_at(2)

[' word2', ' word4']

>>> r.column_at(3)

[' freq2', ' freq4']

>>> a=zip(r.column_at(0),r.column_at(1))

>>> b=zip(r.column_at(2),r.column_at(3))

>>> a+b

[('word1', ' freq1'), ('word3', ' freq3'), (' word2', ' freq2'), (' word4', ' freq4')]

>>> j=open('sample.json', 'w')

>>> import json

>>> j.write(json.dumps(a+b))

>>> j.close()

>>> exit()

结果是:[["word1", " freq1"], ["word3", " freq3"], [" word2", " freq2"], [" word4", " freq4"]]

如您所见,引号中还有空格。所以你能做的就是使用一个表单格式化程序:>>> import pyexcel

>>> r=pyexcel.SeriesReader("sample.csv")

>>> def clean(value, type):

... return value.strip()

...

>>> r.add_formatter(pyexcel.formatters.SheetFormatter(str, clean))

>>> r.column_at(0)

['word1', 'word3']

>>> r.column_at(1)

['freq1', 'freq3']

>>> r.column_at(2)

['word2', 'word4']

>>> r.column_at(3)

['freq2', 'freq4']

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值