python 标准输出函数 returns none 在最后一行
python stdout function returns none on last line
我在输入文本文件中有一堆行:
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")
在一个shell中(如果input.txt包含三个字段):
python -c "from process_files import *; print txt_to_json('field_name1','field_name2','field_name3')" < input.txt > output.json
我的输出很好,除了最后一行包含 None。我试图修改我的功能,但无法摆脱最后一个 None.
感谢您的帮助
您的函数执行 return None
,您正在打印函数的结果,然后将其通过管道传输到文件,删除 print()
调用:
python -c "from process_files import *; txt_to_json('field_name1','field_name2','field_name3')" < input.txt > output.json
我在输入文本文件中有一堆行:
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")
在一个shell中(如果input.txt包含三个字段):
python -c "from process_files import *; print txt_to_json('field_name1','field_name2','field_name3')" < input.txt > output.json
我的输出很好,除了最后一行包含 None。我试图修改我的功能,但无法摆脱最后一个 None.
感谢您的帮助
您的函数执行 return None
,您正在打印函数的结果,然后将其通过管道传输到文件,删除 print()
调用:
python -c "from process_files import *; txt_to_json('field_name1','field_name2','field_name3')" < input.txt > output.json