Nhà phát triển / Loại
Bộ chuyển đổi JSON sang Python
Chuyển mẫu JSON thành dataclass, định nghĩa TypedDict hoặc mô hình Pydantic trong Python, hỗ trợ lớp lồng nhau, trường tùy chọn, có thể null và tên snake_case.
Bộ chuyển đổi JSON sang Python: Bộ chuyển đổi đọc cấu trúc của mẫu: mỗi đối tượng trở thành một lớp, các mảng trở thành list[...], còn các đối tượng trong một mảng được gộp lại. Vì vậy, khóa bị thiếu trong một số bản ghi sẽ trở thành tùy chọn, còn khóa đôi khi có giá trị null sẽ trở thành "| None". Các khóa không phải tên hợp lệ trong Python sẽ được chuyển thành snake_case; mô hình Pydantic giữ khóa gốc làm bí danh, còn TypedDict chuyển sang dạng hàm. Kết quả từ một số mẫu khó xử lý đã được chạy trong Python 3.13; Pydantic cũng đã xác thực mẫu dựa trên kết quả đó. Chạy 100% cục bộ trong trình duyệt của bạn, không có tệp nào được tải lên máy chủ.
- Danh mục
- Công cụ lập trình viên
- Lượt chạy
- Trong trình duyệt của bạn
- Chi phí
- Miễn phí · không cần đăng ký
- Trạng thái khả dụng
- Sẵn sàng sử dụng
Chạy hoàn toàn trong trình duyệt của bạn
Python
from __future__ import annotations
from dataclasses import dataclass
@dataclass
class Address:
city: str
zip_code: str
@dataclass
class User:
id: int
user_name: str
avatar_url: str
score: float
tags: list[str]
address: Address
manager_id: int | None
nickname: str | None = None
UserList = list[User]
Được viết cho Python 3.10 trở lên. Các khóa bị thiếu trong một số đối tượng trở thành tùy chọn; các khóa đôi khi có giá trị null trở thành “| None”. Dataclasses không ánh xạ các khóa đã đổi tên trở lại JSON, vì vậy hãy dùng Pydantic, công cụ bổ sung bí danh, khi các khóa không phải là tên Python hợp lệ.
Từ kiểu dữ liệu đến xác thực
Chỉ chú thích kiểu dữ liệu không kiểm tra dữ liệu trong thời gian chạy: json.loads trả về các dict và list thông thường, bất kể chú thích nói gì. Mô hình Pydantic xác thực và chuyển đổi dữ liệu khi phân tích, bằng Model.model_validate(data), đồng thời báo cáo mọi trường không phù hợp.
Để xem cùng một mẫu trong các ngôn ngữ khác, hãy xem JSON sang TypeScript và JSON sang Go; để có một hợp đồng độc lập với ngôn ngữ, hãy xem JSON sang JSON Schema.
Tạo một mẫu hữu ích
Hãy dán nhiều bản ghi thay vì chỉ một bản ghi, bao gồm cả những bản ghi có trường tùy chọn hoặc rỗng, để bộ chuyển đổi có thể nhận biết những khóa nào luôn xuất hiện. Các giá trị luôn là null hoặc mảng rỗng sẽ được chuyển thành Any để bạn điền thủ công.
Cách sử dụng
- Dán một mẫu JSON, tốt nhất là một mảng gồm nhiều bản ghi điển hình.
- Chọn dataclasses, TypedDict hoặc Pydantic, rồi đặt tên cho kiểu cấp cao nhất.
- Sao chép các lớp được tạo vào dự án của bạn.
Quyền riêng tư và giới hạn
JSON được chuyển đổi trong trình duyệt của bạn và không bao giờ được tải lên.
Công cụ liên quan
Câu hỏi thường gặp
Tôi nên sử dụng kiểu nào?
Dùng Pydantic để xác thực và phân tích dữ liệu từ API, TypedDict để kiểm tra kiểu cho mã truyền các dict thông thường qua lại, và dataclasses cho các đối tượng nội bộ đơn giản do bạn tự tạo.
Mã cần phiên bản Python nào?
Python 3.10 trở lên để dùng cú pháp X | None; NotRequired trong TypedDict cần Python 3.11, hoặc cần typing_extensions nếu dùng phiên bản cũ hơn.
Tại sao một số trường có kiểu Any?
Một khóa luôn có giá trị null hoặc một mảng rỗng không cung cấp thông tin về kiểu dữ liệu; hãy thay Any bằng kiểu thực tế trong tài liệu API của bạn.
Công cụ miễn phí · trong trình duyệt của bạn lượt chạy · không cần tài khoản