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

من موسوعة حسوب
< Python‏ | urllib‏ | parse
اذهب إلى التنقل اذهب إلى البحث


تحلل الدالة سلسلة الاستعلام المعطاة كسلسلة من المعاملات (بيانات من نوع application/x-www-form-urlencoded). تعاد البيانات على هيئة قاموس، تكون مفاتيحه أسماء متغيرات الاستعلام وقيمه قوائم تضمّ قيم كل اسم من أسماء المتغيرات.

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

urllib.parse.parse_qs(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_qs
>>> encoded = 'foo=foo1&foo=foo2'
>>> print('parse_qs:', parse_qs(encoded))
parse_qs: {'foo': ['foo1', 'foo2']}

انظر أيضًا

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

مصادر