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
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.
@route('/api/status') def api_status(): return {'status':'online', 'servertime':time.time()}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.
Lấy từ tài liệu.
//bottlepy.org/docs/stable/api.html#the-bottle-class
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 gCũ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
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
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
llcaollcaollcao
1013 Huy hiệu Đồng3 bronze badges