تقنية

strict=False في بايثون: هل يقبل json.loads كل نص؟

مع strict=False يقرأ المثال جدولة داخل السلسلة.
جدولة يقرأها الخيار.

strict=False يسمح بمحارف التحكم داخل السلاسل في القارئ الافتراضي. [1]

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

لا؛ لا يصلح اقتباسًا ناقصًا في مثالنا. [1]

  • strict=False يسمح بمحارف التحكم داخل السلاسل في القارئ الافتراضي. [1]
  • افتراضيًا، محرف TAB الحرفي داخل السلسلة يطلق JSONDecodeError. [1]
  • مثال مؤلف على CPython 3.12.14: raw أدناه يحوي جدولة بين bud وleaf؛ يقرأه الخيار. [1]
  • حذف علامة الاقتباس الأخيرة يعطي JSONDecodeError رغم strict=False. [1]
  • تحكم: الجدولة بتتابع الإفلات \t يقبلها القارئان؛ يطابق الناتج جمع النصين مع chr(9)، ويبقى raw. [1]

السماح داخل السلسلة

strict=False يسمح بمحارف التحكم داخل السلاسل في القارئ الافتراضي. [1]

الرفض الافتراضي

افتراضيًا، محرف TAB الحرفي داخل السلسلة يطلق JSONDecodeError. [1]

جدولة حرفية في نص

مثال مؤلف على CPython 3.12.14: raw أدناه يحوي جدولة بين bud وleaf؛ يقرأه الخيار. [1]

import json raw='"bud'+chr(9)+'leaf"' json.loads(raw,strict=False) [1]

مع strict=False يبقى الاقتباس الناقص خطأ.
اقتباس ناقص يظل مرفوضًا.

اقتباس ناقص والتحكم

حذف علامة الاقتباس الأخيرة يعطي JSONDecodeError رغم strict=False. [1]

bad=raw[:-1] json.loads(bad,strict=False) [1]

تحكم: الجدولة بتتابع الإفلات \t يقبلها القارئان؛ يطابق الناتج جمع النصين مع chr(9)، ويبقى raw. [1]

المراجع

  1. Python JSON

للتوسع: لغات البرمجة.

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