الفرق بين المراجعتين لصفحة: «Python/urllib/parse/parse qs»

من موسوعة حسوب
< Python‏ | urllib‏ | parse
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.parse_qs()‎‎</code> في بايثون}}</noinclude> تحلل الدالة سلسلة الاستعلام ا...'
 
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.parse_qs()‎‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.parse_qs()‎‎</code> في بايثون}}</noinclude>


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


== البنية العامة ==
== البنية العامة ==
سطر 10: سطر 10:


== ‎المعاملات ==
== ‎المعاملات ==
=== keep_blank_values ===
=== <code>keep_blank_values</code> ===


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


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


=== encoding, errors ===
=== <code>encoding</code>, <code>errors</code> ===


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


=== max_num_fields ===
=== <code>max_num_fields</code> ===


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


استخدم الدالة urllib.parse.urlencode()‎ (مع تعيين القيمة True للمعامل doseq) لتحويل مثل هذه القواميس إلى سلاسل استعلام نصية.
استخدم الدالة <code>urllib.parse.urlencode()‎</code> (مع تعيين القيمة <code>True</code> للمعامل <code>doseq</code>) لتحويل مثل هذه [[Python/dict|القواميس]] إلى سلاسل استعلام نصية.


'''ملاحظات:'''
'''ملاحظات:'''
* أضيف المعاملان encoding و errors في الإصدار 3.2 من بايثون.
* أضيف المعاملان <code>encoding</code> و <code>errors</code> في الإصدار 3.2 من بايثون.
* أضيف المعامل max_num_fields في الإصدار 3.7.2 من بايثون.
* أضيف المعامل <code>max_num_fields</code> في الإصدار 3.7.2 من بايثون.


== أمثلة ==
== أمثلة ==
سطر 43: سطر 43:


== انظر أيضًا ==
== انظر أيضًا ==
* الدالة <code>[[Python/urllib/parse/urlparse|urllib.parse.urlparse()]]</code>‎: تحلّل الدالة عنوان URL إلى ستّة مكونات تمثّل البنية الرئيسية لعنوان URL.
* الدالة <code>[[Python/urllib/parse/parse qsl|urllib.parse.parse_qsl()]]‎</code>: تحلل الدالة سلسلة الاستعلام النصية المعطاة كسلسلة معاملات نصية string argument.


== مصادر ==
== مصادر ==

مراجعة 18:30، 5 فبراير 2019


تحلل الدالة سلسلة الاستعلام المعطاة كسلسلة من المعاملات (بيانات من نوع 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.

مصادر