【发布时间】:2015-11-12 16:57:49
【问题描述】:
我有两个单独调用的脚本,Script 1 调用 Script 2 并返回两者的输出。结果是一个 JSONP 字符串,它有一个由Script 2 在print 末尾添加一个新行引起的换行符。
我正在运行Python 2.7.10。执行第二个脚本时,我通常会遇到以下错误之一:
TypeError: expected a character buffer object 或
invalid syntax 用于使用 Python 3 命令。
如何确保生成的字符串中没有换行符?
脚本 1(脚本 2 调用):
jsonstring = subprocess.check_output(['python',"scripts/"+path+'.py'],shell=False)
return "%s(%s)" % (request.query.callback, jsonstring)
脚本 2:
import json
def func():
jsonString = \
"""[
{ "DT_RowId": "row_1", "size": "medium", "color": "red" },
{ "DT_RowId": "row_2", "size": "large", "color": "blue" },
{ "DT_RowId": "row_3", "size": "medium", "color": "white" }
]"""
print(jsonString), #end="", flush=True) Available from Python 3
func()
结果字符串:
jQuery111306445024223066866_1447346051405([{'size': 'medium', 'color': 'red', 'DT_RowId': 'row_1'}, {'size': 'large', 'color': 'blue', 'DT_RowId': 'row_2'}, {'size': 'medium', 'color': 'white', 'DT_RowId': 'row_3'}]
)
【问题讨论】:
标签: python python-2.7 jsonp newline string-formatting