الدالة urllib.parse.parse_qsl()‎‎ في بايثون

من موسوعة حسوب
< Python‏ | urllib‏ | parse
مراجعة 18:42، 5 فبراير 2019 بواسطة Mohammed Taher (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث


تحلل الدالة سلسلة الاستعلام النصية المعطاة كسلسلة معاملات نصية string argument (بيانات من نوع application/x-www-form-urlencoded). تعاد البيانات على هيئة قائمة أزواج اسم، قيمة.

البنية العامة

urllib.parse.parse_qsl(qs, keep_blank_values=False, strict_parsing=False, encoding='utf-8', errors='replace', max_num_fields=None)

‎المعاملات

keep_blank_values

راية تحدد إذا ما كان المطلوب معاملة القيم الفارغة في سلاسل الاستعلام المرمّزة بالنسبة المئوية percent-encoded queries على أنّها سلاسل نصية فارغة. تشير القيمة الصحيحة لهذا المعامل إلى أنّ الفراغات ستبقى سلاسل نصية فارغة، أما القيمة الخاطئة (وهي القيمة الافتراضية) فتشير إلى أن القيم الفارغة ستُتجاهل من قبل الدالة وتُعامل كما لو أنّها غير موجودة.

strict_parsing

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

encoding, errors

يحدّد هذان المعاملان طريقة فكّ ترميز التسلسلات المرمّزة بعلامة النسبة المئوية إلى محارف Unicode، وبالطريقة المتّبعة في التابع bytes.decode()‎.

max_num_fields

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

استخدم الدالة urllib.parse.urlencode()‎ (مع تعيين القيمة True للمعامل doseq) لتحويل مثل هذه القواميس إلى سلاسل استعلام نصية.

ملاحظات:

  • أضيف المعاملان encoding و errors في الإصدار 3.2 من بايثون.
  • أضيف المعامل max_num_fields في الإصدار 3.7.2 من بايثون.

أمثلة

يبين المثال التالي طريقة عمل الدالة:

>>> from urllib.parse import parse_qsl
>>> encoded = 'foo=foo1&foo=foo2'
>>> print('parse_qsl:', parse_qsl(encoded))
parse_qsl: [('foo', 'foo1'), ('foo', 'foo2')]

انظر أيضًا

  • الدالة urllib.parse.urlparse()‎: تحلّل الدالة عنوان URL إلى ستّة مكونات تمثّل البنية الرئيسية لعنوان URL.
  • الدالة urllib.parse.parse_qs(): تحلل الدالة سلسلة الاستعلام المعطاة كسلسلة من المعاملات.

مصادر