Python 2.7:JSONP 的字符串格式化
Python 2.7: String formatting for JSONP
我有两个单独调用的脚本,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'}]
)
对于脚本 2,请尝试:
from __future__ import print_function
然后使用行尾不带 \n 的打印功能
print(jsonString, end='')
相关文档:https://docs.python.org/2/whatsnew/2.6.html#pep-3105-print-as-a-function
我有两个单独调用的脚本,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'}]
)
对于脚本 2,请尝试:
from __future__ import print_function
然后使用行尾不带 \n 的打印功能
print(jsonString, end='')
相关文档:https://docs.python.org/2/whatsnew/2.6.html#pep-3105-print-as-a-function