كيف يمكنني التعامل مع طلب JSON في زجاجة؟
سؤال
أحتاج إلى الحصول على بيانات من JSON ، نقلها AJAX من العميل. في الأساس استخدمت شيئًا كهذا:
@route('/ajax')
def serve_ajax():
return main.parse_request(json.dumps(dict(request.GET)))
عندما يكون main.parse_request وظيفة ، تحتوي على بعض المنطق للتعامل مع المتغيرات في JSON (إنه إجراء رئيسي لمحرك اللعبة).
لذا فإن المشكلة هي أنه لا يمكنني التعامل بشكل صحيح مع متغيرات JSON ، من خلال التحول request.GET
في القولون: لأنني كتبت بطريقة كتبت بالفعل أنني لا أستطيع اجتياز الأشياء المتداخلة والصفائف. كما أن كل قيمة لها نوع سلسلة ، بينما أحتاج إلى أنواع عدد صحيح على الأعداد الصحيحة ونوع السلسلة على الراحة الأخرى.
أو بما أنه يمكنني الحصول على سلسلة الاستعلام الأصلية (بواسطة request.query_string
) ، كيف يمكنني تحويل سلسلة استعلام إلى كائن JSON الأصلي؟
المحلول
الآن منذ زجاجة 0.10, ، ال request.json
جاهز للاستخدام :)
الوثيقة هي هنا.
نصائح أخرى
request.json محدود من قبل memfile_max.
طريقة أخرى تعمل إذا كانت بيانات الطلب أكبر من memfile_max
json.load(request.body)