محوّل JSON إلى فئات Python
الصق JSON واحصل على فئات Python فوراً — dataclass أو Pydantic v2 أو TypedDict. أنواع Optional صحيحة، وأسماء بديلة لمفاتيح camelCase، وفئات متداخلة. 100% في متصفّحك، ومجاني.
بُنيت وروجعت بواسطة مطوّرين يعملون مع Python وPydantic وواجهات API مكتوبة الأنواع.
ما هو تحويل JSON إلى Python؟
يحوّل تحويل JSON إلى Python عيّنة JSON إلى فئات Python جاهزة للاستخدام — dataclass من المكتبة القياسية، أو نموذج Pydantic v2، أو TypedDict — فلا تكتب يدوياً تعريفات الحقول لاستجابة API أو ملف إعداد. يستنتج مولّد فئات Python هذا الأنواع الصحيحة (int وfloat وstr وbool وOptional)، ويحوّل الكائنات المتداخلة إلى فئات مسماة، ويضيف أسماء Pydantic البديلة لمفاتيح camelCase، كل ذلك 100% في متصفحك.
أمثلة
استجابة API إلى dataclass
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} from dataclasses import dataclass
from typing import List
@dataclass
class Root:
id: int
name: str
email: str
active: bool
roles: List[str]
تتحوّل حمولة REST نموذجية إلى @dataclass جاهزة للاستخدام. الأعداد الصحيحة تُستنتج int، والأعداد العشرية float، وتصبح المصفوفات List[str].
كائن متداخل (الفئة الابنة أولاً)
{"repo":"pydantic","owner":{"login":"samuelcolvin","id":100}} from dataclasses import dataclass
@dataclass
class Owner:
login: str
id: int
@dataclass
class Root:
repo: str
owner: Owner
تصبح الكائنات المتداخلة فئات منفصلة ومسماة. تُخرَج الفئة الابنة (Owner) قبل الأب كي يعمل الكود دون from __future__ import annotations.
مفاتيح camelCase إلى اسم Pydantic v2 بديل
{"login":"octocat","publicRepos":15,"createdAt":"2011-01-25"} from pydantic import BaseModel, ConfigDict, Field
class Root(BaseModel):
model_config = ConfigDict(populate_by_name=True)
login: str
public_repos: int = Field(alias="publicRepos")
created_at: str = Field(alias="createdAt")
في وضع Pydantic، تكون الحقول snake_case مع Field(alias=...) يعيد التعيين إلى مفتاح JSON الأصلي، ويتيح لك populate_by_name بناء النموذج بأي من الطريقتين — فيتحقّق فكّ تسلسل بيانات API الحقيقية ذهاباً وإياباً.
مصفوفة من الكائنات إلى TypedDict (مفتاح اختياري)
{"users":[{"id":1,"nick":"x"},{"id":2}]} from typing import List, Optional, TypedDict
class User(TypedDict):
id: int
nick: Optional[str]
class Root(TypedDict):
users: List[User]
تُدمج مصفوفات الكائنات في نوع عنصر واحد. المفتاح الغائب من بعض العناصر (nick) يصبح Optional. يصف TypedDict شكل dict عادي دون أي عبء وقت تشغيل.
كيفية تحويل JSON إلى Python
- 1
الصق بيانات JSON
أدرِج كائن JSON أو مصفوفة أو استجابة API في حقل الإدخال. يبدأ التحويل فوراً.
- 2
اختر dataclass أو Pydantic أو TypedDict
بدّل نمط الإخراج ليطابق مشروعك، وأعد تسمية الفئة الجذرية من الافتراضي Root.
- 3
انسخ أو حمّل
خذ Python المُولَّد بنقرة واحدة والصقه مباشرة في كودك.
Common Use Cases
- عملاء API مكتوبو الأنواع
- حوّل عيّنة استجابة REST أو GraphQL إلى نماذج Pydantic أو dataclass لعميل requests أو httpx دون كتابة تعريفات الحقول يدوياً.
- تحليل الإعدادات والتجهيزات
- ولّد نماذج لملفات إعداد JSON أو تجهيزات الاختبار أو حمولات webhook التي تحتاج إلى تحميلها والتحقق منها.
- النمذجة السريعة وتلميحات الأنواع
- الصق حمولة غير مألوفة لترى شكلها فوراً كأنواع Python — طريقة سريعة لاستكشاف API جديد أو إضافة تلميحات TypedDict إلى كود dict قديم.
كيف يعمل التحويل
- الاستنتاج البنيوي
- يصبح كل كائن فئة مسماة؛ وتُزال تكرارات الأشكال المتطابقة فتحصل على فئة واحدة لا نسخ. تُدمج مصفوفات الكائنات مفتاحاً بمفتاح، والمفاتيح الغائبة من بعض العناصر تصبح Optional.
- ثلاثة أهداف اصطلاحية
- يُبقي dataclass صفر اعتماديات ويحافظ على المفاتيح الصالحة لـRoot(**data)؛ ويضيف Pydantic v2 أسماء Field البديلة مع populate_by_name لتحقّق حقيقي؛ ويصف TypedDict dict عادياً لمدقّقات الأنواع الساكنة، مستخدماً الصيغة الوظيفية عندما لا يكون المفتاح معرّفاً.
- كتابة أنواع صحيحة وخفيفة الاعتماديات
- تُعيَّن الأعداد الصحيحة إلى int (دقة عشوائية بلا فيض)، والأعداد العشرية والأُسّية إلى float، والحقول الفارغة فقط إلى Optional[Any]. وتُضاف استيرادات typing (Optional وList وAny) فقط عند استخدامها فعلاً.
- 100% على جانب المتصفح
- يجري التحليل والتوليد في متصفحك دون أي طلبات شبكة، فتبقى بياناتك خاصة.
نصائح لنماذج Python نظيفة
- طابِق الوضع مع المهمة
- استخدم dataclass لحاويات البيانات الداخلية، وPydantic v2 عندما تتحقّق من إدخال غير موثوق أو تحلّله، وTypedDict عندما تحتاج فقط إلى تلميحات أنواع ساكنة فوق dict موجودة.
- الصق عيّنة تمثيلية
- تُعلَّم الحقول Optional فقط عندما تحذفها عيّنة، وتعود القيم الفارغة فقط إلى Any. المثال المكتمل المملوء يعطي أدق الأنواع.
- سمِّ فئتك الجذرية
- عيّن اسماً جذرياً ذا معنى (User أو ApiResponse) بدلاً من الافتراضي Root لكود مقروء وقابل للاستيراد.
الأسئلة الشائعة
كيف أحوّل JSON إلى فئة Python؟
ما الفرق بين إخراج dataclass وPydantic وTypedDict؟
كيف أولّد نموذج Pydantic من JSON؟
كيف يعالج إخراج dataclass مفاتيح camelCase؟
كيف تُكتب أنواع الحقول الاختيارية والفارغة؟
إلى أي نوع في Python تُعيَّن كل قيمة JSON؟
هل يعالج الكائنات المتداخلة ومصفوفات الكائنات؟
كيف تُعالَج الكلمات المفتاحية في Python والمفاتيح غير المعرّفات؟
كيف أستخدم الـdataclass المُولَّد لتحليل JSON؟
هل بيانات JSON الخاصة بي خاصة وآمنة؟
هل الأداة مجانية؟ وهل أحتاج إلى حساب؟
أدوات ذات صلة
عرض جميع الأدوات →جدول ASCII ومحوّل الشيفرات
الترميز والتنسيق
جدول ASCII الكامل: 128 حرفًا بالأنظمة العشري والست عشري والثماني والثنائي، مع محوّل ثنائي الاتجاه بين النص وشيفرات ASCII. أحرف التحكم مرفقة بتسلسلات الهروب وتدوين ^ وأين تصادفها فعليًا.
مولّد باركود مجاني — EAN-13 وUPC-A
الترميز والتنسيق
أنشئ باركود EAN-13 وUPC-A وCode 128 وCode 39 و11 نوعاً آخر بصيغة SVG أو PNG جاهزة للطباعة. اكتب 12 خانة فتُحسب خانة التحقق تلقائياً، وإن أخطأت في الأخيرة قلنا لك ما يجب أن تكون.
محوّل Base64 — ترميز وفك ترميز أونلاين
الترميز والتنسيق
رمّز وفك ترميز Base64 مجاناً أونلاين — محوّل فوري مع دعم UTF-8 والرموز التعبيرية. خصوصية 100% — يعمل في متصفّحك. جرّبه الآن.
محوّل Base64 إلى صورة أونلاين
الترميز والتنسيق
فك ترميز سلسلة Base64 أو عنوان URI للبيانات إلى صورة داخل متصفّحك. عاين واقرأ الأبعاد ونوع MIME ثم نزّل كـ PNG أو JPG أو GIF أو SVG. بلا رفع.
تحويل Base64 إلى PDF وملفات والعكس
الترميز والتنسيق
تحويل Base64 إلى PDF أونلاين: الصق Base64 خاماً أو data URI أو استجابة JSON كاملة. تكتشف الأداة نوع الملف الحقيقي وتعاينه وتنزّله، وتنبّهك إلى ملفات PDF المقطوعة. وتحوّل PDF إلى Base64 أيضاً. لا يُرفع أي شيء.
محوّل CSV إلى JSON
الترميز والتنسيق
حوّل CSV إلى JSON في متصفحك. RFC 4180، استنتاج الأنواع، صف العنوان، أمان الأعداد الكبيرة. خصوصية 100%.