2017-01-04 65 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