2017-01-04 38 views
0

我有一个输入文本文件中的一堆线:蟒蛇标准输出函数返回无上最后一行

field1;field2;...fieldn 

,我该怎么转换成output.json,其线路有:

{field_name1:field1,field_name2:field2,...field_namen:fieldn} 

所以我所做的是,使用下面的代码:在外壳

from sys import stdin, stdout 
import json 

def txt_to_json(*args): 
     for line in stdin: 
       fields = [x.strip() for x in line.split(";")] 
       stdout.write(json.dumps(dict(zip(args, fields))) + "\n") 

(如果input.txt中包含三个字段):

python -c "from process_files import *; print txt_to_json('field_name1','field_name2','field_name3')" <input.txt> output.json 

我的输出很好,除了最后一行没有包含None。我试图修改我的功能,但无法摆脱最后一个无。

感谢您的帮助

回答

2

你的函数不返回None,要打印,然后通过管道输送到文件中的函数的结果,除去print()电话:

python -c "from process_files import *; txt_to_json('field_name1','field_name2','field_name3')" <input.txt> output.json