python - 如何将 dataclass_json 中的 field_name 选项用于嵌套字典
问题描述
我尝试使用“dataclass_json”中的“field_name”选项来转换嵌套字典。
但是,我无法得到预期的结果。
数据.py:
from dataclasses import *
from dataclasses_json.api import config, dataclass_json
@dataclass_json
@dataclass
class FirstFloor:
name: str = field(metadata=config(field_name="Name"))
email: str = field(metadata=config(field_name="e-Mail"))
address: str = field(metadata=config(field_name="Address"))
@dataclass_json
@dataclass
class SecondFloor:
user: FirstFloor = field(metadata=config(field_name="User"))
point: int = field(metadata=config(field_name="Point"))
主.py:
from data import FirstFloor, SecondFloor
test_dict_1 = {
"name": "Mash",
"email": "example.com",
"address": "Osaka"
}
test_class_1 = FirstFloor(**test_dict_1)
test_json_1 = test_class_1.to_json(indent=4, ensure_ascii=False)
print(test_json_1)
############################################3
test_dict_2 = {
"user": {
"name": "Leaf",
"email": "test.com",
"address": "Fukuoka"
},
"point": 100
}
test_class_2 = SecondFloor(**test_dict_2)
test_json_2 = test_class_2.to_json(indent=4, ensure_ascii=False)
print(test_json_2)
在这种情况下,test_json_1 是好的结果: { "Name": "Mash", "e-Mail": "example.com", "Address": "Osaka" }
但 test_json_2 不是预期结果:{“User”:{“name”:“Leaf”,“email”:“test.com”,“address”:“Fukuoka”},“Point”:100}
我想知道这段代码中哪个选项更少。
谢谢你。
解决方案
推荐阅读
- javascript - Javascript:如何从“动态”创建的复选框中获取值
- c++ - 如何实现 std::atomic 引用计数器?
- python - Python - 检查字符串中是否至少包含 3 个数字
- perl - 将文件从数字排序转换为字母排序
- javascript - React/nextJS:如何调试 SSR react 应用的不同节点?
- php - 无法从购物车页面获取自定义字段数据到 woocommerce 中订单的结帐页面
- android - gradle有没有替代品?
- python - 传递值列表以在 Python 中重新映射
- ios - segmentcontrol 没有在 ios swift 中选择
- vue.js - vue:向组件内部的“this”添加自定义属性,并防止添加“__ob__”和getter/setter