JSON เป็น Python

สร้าง dataclass, โมเดล Pydantic หรือ TypedDict ของ Python จาก JSON

ข้อมูลเข้า JSON

ตัวเลือก

โมเดล

ผลลัพธ์ Python

วาง JSON หรือโหลดตัวอย่างเพื่อสร้างโค้ด Python

JSON to Python สร้างอะไร

JSON to Python แปลงการตอบกลับของ API หรือ JSON ตัวอย่างใดก็ได้เป็นนิยามชนิดของ Python โหมด Dataclass เขียนคลาส @dataclass พร้อมเมธอดคลาส from_dict เพราะ Root(**data) ไม่สร้าง dataclass ซ้อนและไม่แมปคีย์ที่เปลี่ยนชื่อ โหมด Pydantic v2 เขียนคลาส BaseModel และเพิ่ม Field(alias="original-key") กับ populate_by_name เฉพาะเมื่อชื่อเปลี่ยน โหมด TypedDict คงคีย์ JSON ไว้ตามเดิม และเปลี่ยนไปใช้ไวยากรณ์แบบฟังก์ชัน TypedDict("Name", {...}) เมื่อคีย์ไม่ใช่ตัวระบุที่ถูกต้อง

วิธีใช้งาน
  1. 1.วาง JSON อัปโหลดหรือลากไฟล์ .json มาวาง หรือโหลดตัวอย่างหนึ่งรายการ
  2. 2.ตั้งชื่อชนิดราก หากรากของ JSON เป็นอาร์เรย์ของออบเจ็กต์ ชื่อนี้จะใช้กับชนิดของรายการ และจะเพิ่ม RootList เป็น alias
  3. 3.เลือก Dataclass, Pydantic v2 หรือ TypedDict และเลือกว่าจะใช้แอตทริบิวต์แบบ snake_case หรือไม่
  4. 4.อ่านหมายเหตุใต้ผลลัพธ์ แล้วคัดลอกโค้ดหรือดาวน์โหลด models.py
การอนุมานชนิด
  • •ตรวจทุกรายการในอาร์เรย์ ไม่ใช่แค่รายการแรก และรวมออบเจ็กต์ในอาร์เรย์เดียวกันเข้าด้วยกัน
  • •คีย์ที่ไม่มีในบางออบเจ็กต์เป็นแบบไม่บังคับ คีย์ที่บางครั้งเป็น null เป็นแบบ nullable โดยแยกสองกรณีนี้ออกจากกัน
  • •1 และ 2.5 ในตำแหน่งเดียวกันจะขยายเป็นทศนิยม ส่วนการปนกันแบบอื่นจะถูกรายงาน
  • •อาร์เรย์ว่างและค่าที่เป็น null เท่านั้นไม่มีหลักฐานของชนิด จึงใช้ชนิดทั่วไปและมีหมายเหตุอธิบาย
  • •การแมปชนิด: string → str, integer → int, decimal → float, boolean → bool, array → list[T], object → คลาสซ้อน, ไม่ทราบชนิด → Any, พบ null → T | None
  • •คำสงวนจะกลายเป็น class_ คีย์ที่ขึ้นต้นด้วยตัวเลขจะมีคำนำหน้า field_ และชื่อที่ชนกันจะได้ _2
ข้อจำกัดและความเป็นส่วนตัว

ตัวอย่างแสดงเพียงหน้าตาของข้อมูลครั้งหนึ่ง ไม่ใช่สัญญา API ทั้งหมด ตรวจสอบฟิลด์ไม่บังคับ ชนิดทั่วไป และขนาดของตัวเลขก่อนนำโค้ดไปใช้ ข้อมูลเข้าจำกัดที่ 5 MB และการซ้อน 256 ระดับ ตั้งแต่ 2 MB ขึ้นไปการสร้างจะรอให้กดปุ่ม สร้าง ทุกอย่างทำงานในเบราว์เซอร์ และ JSON จะไม่ถูกอัปโหลด โค้ดที่สร้างใช้ไวยากรณ์ union ของ Python 3.10+ ส่วนโหมด TypedDict ที่ใช้ NotRequired ต้องใช้ Python 3.11 หรือ typing_extensions

CodingTool เปิดตัวอย่างเป็นทางการบน

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.toolsLaunchpadly Startup DirectoryCodingTool.dev — Featured on Smol Launch