Hướng dẫn python bottle json - chai trăn json

26

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Làm cách nào để trả về dữ liệu JSON từ người xử lý yêu cầu chai. Tôi thấy một phương pháp Dict2Json trong chai SRC nhưng tôi không chắc chắn làm thế nào để sử dụng nó.

Những gì trong tài liệu:

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

Cung cấp cho tôi điều này khi tôi đưa ra trang:

<html>
    <head></head>
    <body>statusservertime</body>
</html>

Hỏi ngày 17 tháng 8 năm 2010 lúc 20:33Aug 17, 2010 at 20:33

Hướng dẫn python bottle json - chai trăn json

Arintearintearinte

3.57010 Huy hiệu vàng44 Huy hiệu bạc63 Huy hiệu Đồng10 gold badges44 silver badges63 bronze badges

3

Đơn giản chỉ cần trả lại một dict. Chai xử lý việc chuyển đổi sang JSON cho bạn.

Ngay cả từ điển được cho phép. Chúng được chuyển đổi thành JSON và được trả về với tiêu đề loại nội dung được đặt thành ứng dụng/JSON. Để vô hiệu hóa tính năng này (và chuyển các dicts cho phần mềm trung gian của bạn), bạn có thể đặt chai.default_app (). Autojson thành false.

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

Lấy từ tài liệu.

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

Hướng dẫn python bottle json - chai trăn json

Stormdrain

7.9054 Huy hiệu vàng37 Huy hiệu bạc75 Huy hiệu đồng4 gold badges37 silver badges75 bronze badges

Đã trả lời ngày 17 tháng 8 năm 2010 lúc 20:39Aug 17, 2010 at 20:39

AndrewandrewAndrew

12.4K2 Huy hiệu vàng25 Huy hiệu bạc18 Huy hiệu đồng2 gold badges25 silver badges18 bronze badges

1

Vì một số lý do, tính năng tự động của chai không phù hợp với tôi. Nếu nó cũng không phù hợp với bạn, bạn có thể sử dụng bộ trang trí này:

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

Cũng tiện dụng:

def mime(mime_type):
    def decorator(f):
        def g(*a, **k):
            response.content_type = mime_type
            return f(*a, **k)
        return g
    return decorator

Đã trả lời ngày 17 tháng 9 năm 2010 lúc 0:20Sep 17, 2010 at 0:20

David M.David M.David M.

3.66724 Huy hiệu bạc27 Huy hiệu đồng24 silver badges27 bronze badges

3

return {'status':'online', 'servertime':time.time()} hoạt động hoàn toàn tốt cho tôi. Bạn đã nhập time chưa?

Những công việc này:

import time
from bottle import route, run

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

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

Đã trả lời ngày 17 tháng 9 năm 2010 lúc 0:16Sep 17, 2010 at 0:16

Hướng dẫn python bottle json - chai trăn json

Tim McNamaratim McNamaraTim McNamara

17.6K4 Huy hiệu vàng51 Huy hiệu bạc82 Huy hiệu Đồng4 gold badges51 silver badges82 bronze badges

1

Hãy thử điều này sẽ hoạt động như dự định

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)

Đã trả lời ngày 28 tháng 4 năm 2015 lúc 8:09Apr 28, 2015 at 8:09

Hướng dẫn python bottle json - chai trăn json

Darshan Jdarshan jDarshan J

3212 Huy hiệu bạc4 Huy hiệu đồng2 silver badges4 bronze badges

Thật dễ dàng để có được JSON bằng mô -đun yêu cầu của chai

from bottle import request

json_data = request.json # json_data is in the dictionary format

Đã trả lời ngày 1 tháng 8 năm 2017 lúc 0:23Aug 1, 2017 at 0:23

Hướng dẫn python bottle json - chai trăn json

llcaollcaollcao

1013 Huy hiệu Đồng3 bronze badges