From 89889a38afaacc642ab5f6b6bdfa4cfdccfb8729 Mon Sep 17 00:00:00 2001 From: Hatter Jiang Date: Sun, 24 May 2026 22:38:26 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=86=95=20Add=20new=20JSON=20dataclass=20t?= =?UTF-8?q?est=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- json_tests/json_dataclass_test.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 json_tests/json_dataclass_test.py diff --git a/json_tests/json_dataclass_test.py b/json_tests/json_dataclass_test.py new file mode 100644 index 0000000..568dc57 --- /dev/null +++ b/json_tests/json_dataclass_test.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +import json +from dataclasses import dataclass, asdict + + +@dataclass +class User: + name: str + age: int + + +if __name__ == '__main__': + user = User(name="张三", age=25) + # 1. 先转成字典 + user_dict = asdict(user) # 结果: {'name': '张三', 'age': 25} + # 2. 再转成 JSON 字符串 + json_str = json.dumps(user_dict, ensure_ascii=False) + print(json_str) # 输出: {"name": "张三", "age": 25} + + data_dict = json.loads(json_str) + user2 = User(**data_dict) + print(user2) # 输出: User(name='张三', age=25)