2014-02-21 126 views
1

与此类似问题batch process text to csv using python批量转换JSON为csv蟒蛇

我有一批需要被转换成CSV,使他们可以导入到的Tableau JSON文件。

第一步是让json2csv(https://github.com/evidens/json2csv)工作,我做了。我可以通过命令行成功转换单个文件。

现在我需要通过目录中的文件并使用该json2csv脚本在单个批处理操作中转换每个文件的操作。

TIA

+1

你可以发布你的代码吗?然后,我们可以指出你做错了什么,这总是更具教育意义。 – Carpetsmoker

+2

类似'for os.listdir(“。”)中的文件'? –

回答

1

其实我创建了一个jsontocsv python脚本来运行自己。它基本上以区块的形式读取json文件,然后通过确定csv文件的行和列。

查看Opening A large JSON file in Python with no newlines for csv conversion Python 2.6.6了解所做过的以及如何从json构建.csv的细节。实际的转换将取决于您的实际json格式。

块大小为0x800000的json parse function是用于读取json数据的内容。

如果数据在特定时间变为可用,您可以使用crontab进行设置。

我用

from optparse import OptionParser 

获得输入和输出文件作为参数以及设置被要求进行了分析与制图的各种选项。

您也可以使用批处理脚本,在给定的目录

for f in *.json; do 
    mybase=`basename $f .json` 
    json2csv $f -o ${mybase}.csv 
done 

或者使用与-exec {}选项

如果你想把所有的JSON文件进入一个发现。 csv文件你可以使用

json2csv *.json -o myfile.csv 
+0

请始终在shell脚本中引用文件名。 *总是*。只要您获得空格,支架,美元符号等的文件名,就会中断。 – Carpetsmoker