تقنية

urlencode في بايثون: هل يفك قيمة القائمة تلقائيًا؟

تمثيل القائمة داخل قيمة نصية واحدة افتراضيًا
قيمة نصية واحدة. [1] [2]

قائمة المدخل لا تعني تلقائيًا عدة قيم للاستعلام. [1] [2]

الخلاصة السريعة

الافتراضي doseq=False؛ اضبطه على True لتفكيك قائمة قيمنا. [1] [2]

  • قيمة tag قائمة تضم bud وleaf. [1] [2]
  • افتراضيًا، قراءتها تعطي نص تمثيل القائمة داخل قائمة أحادية. [1] [2]
  • مع doseq=True يصبح الاستعلام tag=bud&tag=leaf. [1] [2]
  • parse_qs يعيد قيمتي bud وleaf منفصلتين حينئذ. [1] [2]
  • نفحص 3.12.14 ونصوصًا غير فارغة؛ لم نرسل طلبًا. [1] [2]

المثال

from urllib.parse import (
    urlencode,parse_qs)
row={"tag":["bud","leaf"]}
a=urlencode(row)
b=urlencode(row,doseq=True)
print(parse_qs(a)["tag"])
print(parse_qs(b)["tag"])

[1] [2]

قيمة واحدة أم اثنتان؟

المصدر يحول القائمة كلها إلى نص في المسار الافتراضي. مع التفكيك ينشئ زوجًا لكل عنصر؛ يجمع parse_qs قيم المفتاح المتكرر في قائمة. [1] [2]

قيمتان منفصلتان عند تفعيل doseq
قيمتان. [1] [2]

النطاق

المخرج الأول ["['bud', 'leaf']"]؛ الثاني ['bud', 'leaf']. يعرض الأول نصًا واحدًا، لا قائمتنا الأصلية. المدخل باقٍ؛ معالجة النص هنا لا تثبت استجابة خادم. [1] [2]

المراجع

  1. Python 3.12: urlencode and parse_qs
  2. CPython 3.12.14: query values
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.