2010-10-30 26 views
14


Tôi cần lấy dữ liệu từ JSON, được chuyển bởi ajax từ ứng dụng khách. Về cơ bản tôi đã sử dụng một cái gì đó như thế này:Làm cách nào để xử lý yêu cầu JSON trong chai?

@route('/ajax') 
def serve_ajax(): 
    return main.parse_request(json.dumps(dict(request.GET))) 

đâu main.parse_request là một chức năng, có chứa một số logic để đối phó với các biến trong JSON (nó là một thủ tục chính của công cụ trò chơi của chúng tôi). Vì vậy, vấn đề là tôi không thể xử lý chính xác JSON vars, bằng cách chuyển đổi request.GET trong một dict: nguyên nhân theo cách, mà tôi đã viết Tôi không thể vượt qua các đối tượng lồng nhau và mảng, cũng mỗi giá trị có một chuỗi loại, trong khi tôi cần phải có các loại số nguyên trên số nguyên và loại chuỗi trên phần còn lại khác.

Hoặc, vì tôi có thể lấy chuỗi truy vấn ban đầu (theo số request.query_string), làm cách nào để chuyển chuỗi truy vấn thành đối tượng JSON gốc?

Trả lời

21

Bây giờ kể từ khi chai 0.10, các request.json đã sẵn sàng để sử dụng :)

Document là here.

17

request.json bị giới hạn bởi MEMFILE_MAX.

Một cách khác hoạt động nếu yêu cầu dữ liệu lớn hơn MEMFILE_MAX

json.load(request.body) 
Các vấn đề liên quan