إرسال طلب POST بقيم مضاعفة لنفس المفتاح مع مكتبة الطلبات

StackOverflow https://stackoverflow.com/questions/8394267

سؤال

كيف يمكنك إرسال طلب بقيم مضاعفة بنفس المفتاح؟

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"
  ]
},
...
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top