2015-11-12 78 views
2

我有兩個獨立調用的腳本,Script 1調用Script 2,並返回兩者的輸出。結果是一個JSONP字符串,它有一個換行符,由Script 2print的末尾添加一個新行。Python 2.7:JSONP的字符串格式化

我正在運行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'}] 
) 

回答