إرسال طلب POST بقيم مضاعفة لنفس المفتاح مع مكتبة الطلبات
-
28-10-2019 - |
سؤال
كيف يمكنك إرسال طلب بقيم مضاعفة بنفس المفتاح؟
r = requests.post('http://www.httpbin.org/post', data={1: [2, 3]})
print r.content
{ ... "form": { "1": "3" }, ... }
يحرر:
حسنًا، غريب جدًا.لقد حاولت تكرار بيانات النشر باستخدام تطبيق Flask البسيط وأحصل على:
[('1', u'2'), ('1', u'3')]
هل هذا مجرد عيب في httpbin.org؟
المحلول
لقد أتضح أن requests
تم إرسال بيانات POST دون مشكلة.لقد كانت مسألة على http://httpbin.org end الذي كان يتسبب في تسوية بيانات النموذج وتجاهل القيم المتعددة التي لها نفس المفتاح.
نصائح أخرى
جرب Werkzeug MultiDict
.إنها نفس البنية المستخدمة لهذا الغرض في تطبيقات Flask.
import requests
from werkzeug.datastructures import MultiDict
data = MultiDict([('1', '2'), ('1', '3')])
r = requests.post('http://www.httpbin.org/post', data=data)
print(r.content)
نتيجة:
...
"form": {
"1": [
"2",
"3"
]
},
...
لا تنتمي إلى StackOverflow