Frage

Wie gehe ich über die JSON-Daten aus einer Flasche Request-Handler zurück. Ich sehe eine dict2json Methode in der Flasche src aber ich bin nicht sicher, wie es zu benutzen.

Was in der Dokumentation ist:

@route('/spam')
def spam():
    return {'status':'online', 'servertime':time.time()}

Gibt mir das, wenn ich die Seite bringen:

<html>
    <head></head>
    <body>statusservertime</body>
</html>
War es hilfreich?

Lösung

Bringen Sie einfach einen dict. Bottle Griffe die Umwandlung in JSON für Sie.

  

Auch Wörterbücher sind erlaubt. Sie werden zu json umgewandelt und mit Content-Type-Header-Set application / json zurückgegeben. Um diese Funktion zu deaktivieren (und übergeben dicts zu Ihrer Middleware) Sie bottle.default_app () einstellen. Autojson auf False fest.

@route('/api/status')
def api_status():
    return {'status':'online', 'servertime':time.time()}

Genommen von der Dokumentation.

http://bottlepy.org/docs/stable/api. html # the-bottle-Klasse

Andere Tipps

Aus irgendeinem Grund Flaschen Auto-json-Funktion funktioniert nicht für mich arbeiten. Wenn es auch nicht Arbeit für Sie, können Sie diesen Dekorateur verwenden:

def json_result(f):
    def g(*a, **k):
        return json.dumps(f(*a, **k))
    return g

Auch praktisch:

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()} funktioniert sehr gut für mich. Haben Sie importierte time?

Das funktioniert:

import time
from bottle import route, run

@route('/')
def index():
    return {'status':'online', 'servertime':time.time()}

run(host='localhost', port=8080)

versuchen sollte dies funktioniert wie beabsichtigt

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)

ist es einfach, Flasche Wunsch Modul zu bekommen json mit

from bottle import request

json_data = request.json # json_data is in the dictionary format
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top