Hướng dẫn json to python object online - json đến đối tượng python trực tuyến

Có nhiều cách bạn có thể chuyển đổi một đối tượng JSON sang các lớp Python. Công cụ này sử dụng một trong những cách này sử dụng các chức năng tĩnh để ánh xạ các giá trị khóa từ điển để nhập các thuộc tính và lớp Python an toàn. Dưới đây là các bước để chuyển đổi JSON sang các lớp Python: & nbsp;

1. Tạo một dữ liệu cho mỗi nút gốc JSON

Ví dụ, hãy lấy chuỗi JSON dưới đây làm ví dụ và làm việc với nó trong các bước:

{
"Test":
{ "id":4, "userid":"user_id_value", "users":[ { "id":"2", "name":"Test" }, { "id":"6", "name":"Test Child 1" } ] } }

Chúng ta có thể thấy rằng chúng ta cần tạo hai lớp: "kiểm tra" và "người dùng" vì "người dùng" thuộc tính là một mảng đối tượng có "id" và "tên".

Chúng ta có thể viết các lớp Python của mình cùng với các thuộc tính của chúng như vậy:


from dataclasses import dataclass
from typing import List

@dataclass
class User:
id: str
name: str

@dataclass
class Test:
id: int
userid: str
users: List[User]

Trong Python, thật dễ dàng để tải chuỗi JSON vào từ điển và truy cập các giá trị bằng cách gọi các khóa từ điển. Điều này có thể được thực hiện bằng cách sử dụng

x = json.loads [my_json_string]

và truy cập các giá trị từ điển bằng cách sử dụng x ["my_json_key"]]

Tuy nhiên, việc dịch các mục từ điển này để nhập các thuộc tính Python an toàn đòi hỏi một vài bước bổ sung mà chúng ta cần làm.

2. Ánh xạ từng thuộc tính JSON cho một thuộc tính Python an toàn

Bước tiếp theo cần được thực hiện là ánh xạ từng nút JSON và các thuộc tính cho các lớp và thuộc tính Python. Chúng ta có thể làm như vậy bằng cách tạo một phương pháp tĩnh trong các lớp Python chịu trách nhiệm lập bản đồ từ điển của chúng ta đến các thuộc tính Python của chúng ta. Kịch bản Python sẽ trông như thế này:


from dataclasses import dataclass
from typing import Any, List

@dataclass
class User:
id: str
name: str

@staticmethod
def from_dict[obj: Any] -> 'User':
_id = int[obj.get["id"]]
_name = str[obj.get["name"]]
return User[_id, _name]

@dataclass
class Test:
id: int
userid: str
users: List[User]

@staticmethod
def from_dict[obj: Any] -> 'Test':
_id = int[obj.get["id"]]
_userid = str[obj.get["userid"]]
_users = [User.from_dict[y] for y in obj.get["users"]]
return Test[_id, _userid, _users]

Chúng tôi tạo một phương thức tĩnh gọi là "From_dic" và bên trong phương thức này, chúng tôi tạo các thuộc tính cục bộ ["_id, _name"] và với mỗi thuộc tính, chúng tôi đang gọi từ điển cung cấp các khóa được tìm thấy trong chuỗi JSON của chúng tôi -> obj.get ["id" ] và sau đó đúc đối tượng đó vào các loại python -> int [obj.get ["id"]]]-> obj.get["id"] and then casting that object to Python types -> int[obj.get["id"]]

Lưu ý rằng đối với các mảng và danh sách, những gì chúng tôi đang làm là chúng tôi đang tạo một danh sách người dùng và cho mỗi người dùng, chúng tôi đang gọi phương thức "From_dict" để các thuộc tính người dùng cũng sẽ được ánh xạ. Điều này có thể được nhìn thấy trong dòng dưới đây: & nbsp;

_users = [User.from_dict[y] for y in obj.get["users"]] 

Cuối cùng, chúng tôi đang trả về một đối tượng được ánh xạ như đã thấy trong các dòng cuối cùng của phương thức "From_dict":

return Test[_id, _userid, _users]

3. Bọc đối tượng Python của bạn bằng một lớp gốc

Bạn có thể tùy chọn quấn các đối tượng Python của mình bằng một lớp gốc và đây là trường hợp bạn có nhiều lớp trong nút gốc của chuỗi JSON. & NBSP;

Chúng tôi có thể đạt được điều này bằng cách thêm mã dưới đây vào tập lệnh Python của chúng tôi:

@dataclass
class Root:
Test: Test

@staticmethod
def from_dict[obj: Any] -> 'Root':
_Test = Test.from_dict[obj.get["Test"]]
return Root[_Test]

4. Gọi hàm ánh xạ tại lớp gốc & nbsp;

Cuối cùng, để sử dụng các chức năng ánh xạ của chúng tôi, chúng tôi cần gọi hàm ánh xạ gốc "từ_dict" như vậy: & nbsp;

# Load the json string to a variable
output = json.load[open['data.json']]
# Call the mapping function result = Root.from_dict[output]
# Access your Python properties result.Test.userid

5. Sử dụng công cụ trực tuyến ở trên để tạo các lớp Python từ các chuỗi JSON

Bạn luôn có thể sử dụng công cụ trực tuyến ở trên để đạt được những gì chúng tôi đã làm trong ví dụ này. Chỉ cần dán JSON của bạn vào khu vực văn bản bên trái, nhấn nút chuyển đổi đó và bạn sẽ có các lớp Python của mình với ánh xạ của chúng được tạo tự động!

Kịch bản Python đầy đủ sẽ trông như thế này:


from dataclasses import dataclass
from typing import Any, List
import json

@dataclass
class User:
id: str
name: str

@staticmethod
def from_dict[obj: Any] -> 'User':
_id = int[obj.get["id"]]
_name = str[obj.get["name"]]
return User[_id, _name]

@dataclass
class Test:
id: int
userid: str
users: List[User]

@staticmethod
def from_dict[obj: Any] -> 'Test':
_id = int[obj.get["id"]]
_userid = str[obj.get["userid"]]
_users = [User.from_dict[y] for y in obj.get["users"]]
return Test[_id, _userid, _users]

@dataclass
class Root:
Test: Test

@staticmethod
def from_dict[obj: Any] -> 'Root':
_Test = Test.from_dict[obj.get["Test"]]
return Root[_Test]


# Load the json string to a variable
output = json.load[open['data.json']]
# Call the mapping function
result = Root.from_dict[output]
# Access your Python properties
result.Test.userid

Chúng ta có thể thấy ánh xạ Python của chúng ta hoạt động tốt và chúng ta có thể truy cập các thuộc tính của mình như thường lệ:

Bạn có thể chuyển đổi JSON thành Python không?

Parse JSON - Chuyển đổi từ JSON sang Python Nếu bạn có chuỗi JSON, bạn có thể phân tích nó bằng cách sử dụng phương thức json.Loads []. Kết quả sẽ là một từ điển Python.you can parse it by using the json.loads[] method. The result will be a Python dictionary.

Làm thế nào để bạn truy cập một đối tượng JSON trong Python?

Thật dễ dàng để tải một đối tượng JSON trong Python.Python có một gói tích hợp có tên JSON, có thể được sử dụng để làm việc với dữ liệu JSON.Nó được thực hiện bằng cách sử dụng mô -đun JSON, cung cấp cho chúng tôi rất nhiều phương thức trong số các phương thức tải [] và tải [] sẽ giúp chúng tôi đọc tệp JSON.using the JSON module, which provides us with a lot of methods which among loads[] and load[] methods are gonna help us to read the JSON file.

Làm thế nào để bạn viết dữ liệu JSON vào một tệp trong Python?

Một cách khác để viết JSON vào một tệp là bằng cách sử dụng phương thức json.dump [] Gói JSON có chức năng Dump Dump trực tiếp ghi từ điển vào một tệp dưới dạng JSON mà không cần chuyển đổi nó thành đối tượng JSON thực tế.using json. dump[] method The JSON package has the “dump” function which directly writes the dictionary to a file in the form of JSON, without needing to convert it into an actual JSON object.

JSON [] trong Python là gì?

Ký hiệu đối tượng JavaScript [JSON] là một định dạng được tiêu chuẩn hóa thường được sử dụng để truyền dữ liệu dưới dạng văn bản có thể được gửi qua mạng.Nó được sử dụng bởi rất nhiều API và cơ sở dữ liệu, và thật dễ dàng cho cả con người và máy móc đọc.JSON đại diện cho các đối tượng dưới dạng các cặp tên/giá trị, giống như từ điển Python.a standardized format commonly used to transfer data as text that can be sent over a network. It's used by lots of APIs and Databases, and it's easy for both humans and machines to read. JSON represents objects as name/value pairs, just like a Python dictionary.

Bài Viết Liên Quan

Chủ Đề