Omnikit
المطورونالملفاتالمالجميع الأدوات
Ctrl K
أدوات المطورينأدوات الملفاتالحاسبات الماليةجميع الأدوات
الرئيسيةأدوات المطورينمحوّل JSON إلى أصناف Python
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский

محوّل JSON إلى أصناف Python

مطورون

حوّل عينة JSON إلى dataclasses أو نماذج Pydantic أو TypedDict في Python مع تلميحات الأنواع

يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.

الصق عينة JSON واحصل على dataclasses أو نماذج Pydantic v2 أو TypedDict في Python مع تلميحات الأنواع. تصبح الأعداد الصحيحة int وأي كسر عشري يجعل الحقل float؛ والقيمة null أو المفقودة تصبح str | None مع None قيمةً افتراضية، وتشترك أنماط الأصناف الثلاثة في الاستنتاج نفسه.

تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي

التالي:
  • JSON to Zod Paste a JSON sample and get a Zod schema with its z.infer type, ready to copy
  • منسّق JSON ومدقّقه نسّق JSON وتحقق منه وصغّره ورتّبه مع الموضع الدقيق لكل خطأ

كيفية تحويل JSON إلى صنف Python

1

الصق عينة JSON، مثل استجابة API، في المربع الأيسر.

2

تظهر أصناف Python أثناء الكتابة: صنف لكل كائن، مع تلميحات أنواع مثل int وfloat وlist[str] وstr | None.

3

اختر dataclass أو Pydantic أو TypedDict، وأنواع Python 3.9 إن كان مشروعك أقدم من 3.10.

4

اضغط نسخ، أو تنزيل لحفظ models.py.

حول محوّل JSON إلى أصناف Python

يقرأ Python ملفات JSON على شكل قواميس، والصنف المزوّد بتلميحات الأنواع هو ما يتيح للمحرر أو لمدقق الأنواع أو لـ Pydantic اكتشاف مفتاح مكتوب خطأً أو نوع غير صحيح. يكتب هذا المحوّل تلك الأصناف من عينة، فتتحول استجابة API طويلة إلى Python مُنمَّط بلصقة واحدة.

كيف تُختار الأنواع.

قيمة JSON نوع Python
"text" str
true / false bool
42 (أعداد صحيحة فقط) int
4.5 (ظهر أي كسر عشري) float
null، ومعها نوع آخر str | None، أو Optional[str]
null فقط، أو أنواع مختلطة Any
[ ... ] list[...]
{ } فارغ dict[str, Any]
{ ... } صنف مستقل

مصفوفات الكائنات. تُدمج كل كائنات المصفوفة في صنف واحد، فيبقى المفتاح الذي يظهر في بعضها فقط موجودًا، بنوع يسمح بـ None وبقيمة افتراضية None. يتشارك كائنان لهما المفاتيح والأنواع نفسها تمامًا صنفًا واحدًا.

ثلاثة أنماط. لا تحتاج dataclass إلى تثبيت أي شيء؛ وتُنقل الحقول ذات القيمة الافتراضية إلى ما بعد غيرها، لأن Python يرفع TypeError خلاف ذلك. تستخدم نماذج Pydantic سمات بصيغة snake_case مع Field(alias=...) للمفاتيح المكتوبة بشكل مختلف، مثل userName أو first-name. ويحتفظ TypedDict بالمفاتيح كما هي ويَسِم المفاتيح العارضة بـ NotRequired.

الترتيب والأسماء. تُكتب الأصناف بدءًا بالأصناف الفرعية، فيكون كل اسم معرّفًا قبل استخدامه. وتصبح الكلمة المحجوزة مثل class بصيغة class_، ويحصل المفتاح الذي قد يحجب نوعًا، مثل list، على الشرطة السفلية نفسها.

فُحص كل نمط بتشغيل الناتج في CPython مع Pydantic 2 والتحقق من العينة. لا شيء مما تلصقه يغادر المتصفح.

الأسئلة الشائعة

كيف أحول JSON إلى صنف Python؟

الصق عينة JSON في المحوّل فتظهر أصناف Python بجانبها، صنف لكل كائن، مع تلميح نوع على كل سمة. اختر dataclass للأصناف البسيطة، أو Pydantic للتحقق، أو TypedDict لمواصلة العمل بالقواميس العادية، ثم انسخ الوحدة إلى مشروعك.

هل أستخدم dataclass أم نموذج Pydantic أم TypedDict؟

تناسب dataclass البيانات التي تبنيها بنفسك ولا تحتاج إلى أي مكتبة. ويناسب Pydantic البيانات الآتية من الخارج، مثل استجابات API، لأنه يفحص كل قيمة ويحوّل الكائنات المتداخلة نيابة عنك. أما TypedDict فيضيف تلميحات الأنواع فقط إلى القاموس الذي يعيده json.loads، فلا يكلّف شيئًا وقت التشغيل.

كيف تُعالج مفاتيح JSON مثل userName أو first-name؟

تُكتب سمات Pydantic بصيغة snake_case كما تطلب PEP 8، مع Field(alias="userName") كي يظل التحقق يقرأ المفتاح الأصلي. ويحتفظ TypedDict بكل مفتاح كما هو، وينتقل إلى الصيغة الوظيفية عندما لا يكون المفتاح اسمًا صالحًا. وتحتفظ dataclass بالمفاتيح التي هي أسماء صالحة وتدوّن ملاحظة عن الباقي.

لماذا يكون نوع الحقل str | None أو Optional[str]؟

المفتاح الذي كان null في العينة، أو المفقود من بعض كائنات المصفوفة، قد يحمل None، لذا يسمح تلميحه بذلك. وتحصل المفاتيح المفقودة أيضًا على None قيمةً افتراضية، وفي dataclass تنتقل هذه الحقول إلى النهاية، لأن Python يرفض حقلًا بلا قيمة افتراضية بعد حقل له قيمة افتراضية.

ما إصدار Python الذي يحتاجه الناتج؟

تحتاج الأنواع الافتراضية، مثل list[str] وstr | None، إلى Python 3.10 أو أحدث. فعّل أنواع Python 3.9 للحصول على Optional وList من الوحدة typing بدلًا منها. ويأتي NotRequired الخاص بـ TypedDict من typing_extensions، وهو موجود في typing نفسها منذ Python 3.11.

هل يُرفع ملف JSON الخاص بي؟

لا. يجري التحويل في متصفحك دون أي طلب إلى خادم، ولا يُحفظ JSON، فتبقى استجابات API التي تحمل رموز وصول أو بيانات شخصية على جهازك. أغلق التبويب ولن يبقى شيء.

المصادر

  • Python documentation, dataclassesField order rule: no field without a default after one with a default
  • Python documentation, typing.TypedDict and NotRequiredClass and functional syntax, keys that may be missing
  • PEP 8, naming conventionsCapWords class names, snake_case attributes, a trailing underscore after a keyword
  • Pydantic documentation, fields and aliasesField(alias=...) to read a JSON key into another attribute name

آخر تحقق في 16 أكتوبر 2026.

تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.

هل ما زلت عالقًا؟ اسأل عن محوّل JSON إلى أصناف Python ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.

أدوات ذات صلة

جميع أدوات المطورين
ترميز Base64 وفك ترميزهالنصوص والملفات إلى Base64 والعكس، مع وضع آمن لعناوين URL ومعاينة للصورمحوّل الطابع الزمني Unixمن الطوابع الزمنية Unix إلى تواريخ ومن التواريخ إلى طوابع زمنية، بأي منطقة زمنيةتحويل JSON إلى TypeScriptأنشئ واجهات أو أنواع TypeScript من عيّنة JSONتحويل CSV إلى JSONحوّل CSV إلى JSON وJSON إلى CSV، مع معاينة جدولتحويل YAML إلى JSONحوّل YAML إلى JSON وJSON إلى YAML، مع حلّ المراسيترميز عناوين URL وفك ترميزهارمّز النصوص وعناوين URL بالترميز المئوي أو فكّها، واعرض كل جزء من الرابطمحوّل أنظمة الأعدادالثنائي والثماني والعشري والست عشري وأي أساس حتى 36، بدقة تامة مهما كان الحجم، مع المتمم الثنائيColor ConverterHEX, RGB, HSL, HWB, OKLCH and CMYK in both directions, with a contrast check
هل كانت هذه الأداة مفيدة؟
Omnikit

مهام صغيرة تُنجز في متصفحك. مجانية وسريعة وخاصة. لا تُرفع الملفات أبدًا.

الملفات

  • Compress Image
  • Image to PDF
  • Merge PDF
  • Compress PDF
  • PDF to Word
  • Word to PDF

المطورون

  • JSON Formatter & Validator
  • Base64 Encode & Decode
  • JWT Decoder, Verifier & Encoder
  • Password Generator
  • UUID Generator
  • Unix Timestamp Converter

المال

  • SIP Calculator
  • EMI Calculator
  • GST Calculator
  • FD Calculator
  • PPF Calculator
  • Lumpsum Calculator
EnglishالعربيةবাংলাDeutschEspañolFrançaisPolskiPortuguêsРусский
الأدلةالأسئلةمن نحنكيف نتحققمكتبة القوانين (تجريبية)الخصوصيةالشروطالإفصاحاتصل بناMore: Exam practice (UGC NET Paper 1)يعمل في متصفحك. لا يُرفع أي شيء. © 2026 Omnikit (theomnikit.com)