الدالة urllib.parse.parse_qsl()
في بايثون
تحلل الدالة سلسلة الاستعلام النصية المعطاة كسلسلة معاملات نصية 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()
: تحلل الدالة سلسلة الاستعلام المعطاة كسلسلة من المعاملات.