ボトルリクエストハンドラーからjsonデータを返すにはどうすればよいですか。ボトルsrcにdict2jsonメソッドがありますが、使用方法がわかりません。
ドキュメントの内容:
@route('/spam')
def spam():
return {'status':'online', 'servertime':time.time()}
ページを表示すると、次のように表示されます。
<html>
<head></head>
<body>statusservertime</body>
</html>
単にdictを返します。ボトルがJSONへの変換を処理します。
辞書も許可されます。それらはjsonに変換され、Content-Typeヘッダーがapplication/jsonに設定されて返されます。この機能を無効にする(そしてミドルウェアにdictを渡す)には、bottle.default_app()。autojsonをFalseに設定します。
@route('/api/status')
def api_status():
return {'status':'online', 'servertime':time.time()}
ドキュメント。 から取得
何らかの理由で、ボトルのauto-json機能が機能しません。それでもうまくいかない場合は、次のデコレータを使用できます。
def json_result(f):
def g(*a, **k):
return json.dumps(f(*a, **k))
return g
また便利:
def mime(mime_type):
def decorator(f):
def g(*a, **k):
response.content_type = mime_type
return f(*a, **k)
return g
return decorator
return {'status':'online', 'servertime':time.time()}
は私にとって完全にうまく機能します。 time
をインポートしましたか?
これは機能します:
import time
from bottle import route, run
@route('/')
def index():
return {'status':'online', 'servertime':time.time()}
run(Host='localhost', port=8080)
ボトルのリクエストモジュールを使用してjsonを取得するのは簡単です
from bottle import request
json_data = request.json # json_data is in the dictionary format
これは意図したとおりに機能するはずです
from bson.json_util import dumps
from bottle import route, run
import time
@route('/')
def index():
return {'status':'online', 'servertime':dumps(time.time()) }
run(Host='localhost', port=8080)