Python 2.7:JSONP 的字符串格式化

Python 2.7: String formatting for JSONP

我有两个单独调用的脚本,Script 1 调用 Script 2 并返回两个的输出。结果是一个 JSONP 字符串,它有一个换行符,这是由于 Script 2print 的末尾添加了一个新行。

我是 运行 Python 2.7.10。执行第二个脚本时,我通常会遇到以下错误之一:

TypeError: expected a character buffer objectinvalid 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