2017-06-03 30 views
2

第一次使用Flask,我創建了一個非常基本的應用程序,我試圖打印推薦系統的結果。第一組代碼來自我的python函數(print_most_similar),並且正在創建一個格式化的字符串,希望能夠在新行上打印每個REC。代碼的第二部分顯然是我的燒瓶路由。你可以看到瓶子部分調用函數,所以它返回'y'。 我相信jsonify不會採用\ n字符。 我曾嘗試在字符串格式中使用'\ n',但它只是顯示爲一個字符串。和'\ t'一樣。燒瓶jsonify在新行上打印結果

for k in range(len(sugg)): 
    x = str("REC {}: {}\\n".format(k+1, sugg[k])) 
    y += x 
return y 

@app.route("/getrecomm",methods=['GET','POST']) 
def getrecomm(): 
    restname = request.args.get('restname', type=str) 
    number = request.args.get('number', type=int) 
    i = getBusIndex(restname, names) 
return make_response(jsonify(result=(print_most_similar(rating, names, i, number))),200) 

目前,結果打印這樣的: REC 1:海心閣咖啡廳&休息室\ NREC 2:星巴克\ NREC 3:麥當勞\ NREC 4:Taco Bell的\ NREC 5:熊貓快遞\ n

我想他們打印像這樣: REC 1:海心閣咖啡廳&休息室 REC 2:星巴克 REC 3:麥當勞 REC 4:Taco Bell的 REC 5:熊貓快遞

我正在使用python 3,fyi。任何建議將超級讚賞!

+0

您是否嘗試過記錄的jsonified內容?這裏是否包括'\ n'字符(在它們返回之前) – WookieCoder

回答

1

摘要

  • <br>
  • 替代:JSONView Chrome擴展

唯一一個給我很好的效果是<br>

from flask import Flask, jsonify 

app = Flask(__name__) 

tasks = [ 
    { 
     '<br>id': 1, 
     'title': u'Buy groceries', 
     'description': u'Milk, Cheese, Pizza, Fruit, Tylenol', 
     'done': False 
    }, 
    { 
     '<br>id': 2, 
     'title': u'Learn Python', 
     'description': u'Need to find a good Python tutorial on the web', 
     'done': False 
    } 
] 

@app.route('/todo/api/v1.0/tasks', methods=['GET']) 
def get_tasks(): 
    return jsonify({'tasks': tasks}) 

if __name__ == '__main__': 
    app.run(debug=True) 

在您的瀏覽器中,<br>字符將會變成html並重現一個新行。

結果:
"creates" new lines in json

Jsonify不能幫助你,因爲它採用的值(整數,布爾型,浮點型等)作爲一個字符串,並避免類似\n\t特殊字符等

最後,如果你只是想用一種奇妙的方式在瀏覽器中可視化json文件,那麼可以使用JSONView,它是一種Chrome擴展,它以更容易理解的方式呈現Json文件,就像這樣。

rendering with JSONView