Python - pydantic(2)嵌套模型
2021-09-12 22:19
435 查看
简单的栗子
class User(BaseModel): id: int # 必填字段 name: str = "小菠萝" # 有默认值,选填字段 signup_ts: Optional[datetime] = None friends: List[int] = [] # 列表中元素是 int 类型,或可以直接转成 int 的类型 # 关键字参数 user = User(id="1", name="大菠萝", signup_ts="2021-09-16 12:22") print(user.dict()) # 字典解包传参 data = { "id": "2", "name": "大大的菠萝", "friends": [1, 2, 3] } user = User(**data) print(user.dict()) # 输出结果 {'id': 1, 'name': '大菠萝', 'signup_ts': datetime.datetime(2021, 9, 16, 12, 22), 'friends': []} {'id': 2, 'name': '大大的菠萝', 'signup_ts': None, 'friends': [1, 2, 3]}
嵌套模型
可以使用模型本身作为数据类型提示来定义更复杂的分层数据结构
from typing import List from pydantic import BaseModel class Foo(BaseModel): count: int size: float = None class Bar(BaseModel): apple = 'x' banana = 'y' class Spam(BaseModel): foo: Foo bars: List[Bar] f = Foo(count=2) b = Bar() s = Spam(foo=f, bars=[b]) print(s.dict()) # 输出结果 {'bars': [{'apple': 'x', 'banana': 'y'}], 'foo': {'count': 2, 'size': None}}
相关文章推荐
- [读书笔记] 《Python 机器学习》- 使用嵌套交叉验证进行模型选择
- C++嵌套调用 用Python 脚本写的 基于Gurobi 的解数学模型的经验记录
- python基础知识学习——I/O模型
- python-django 模型model字段类型说明
- Python时间序列处理之ARIMA模型的使用讲解
- 【Python十分钟写出聊天机器人】基于Keras实现seq2seq模型
- python基础-进线程下的queue、及其生产者消费者模型(2种方式)
- Python实现ARIMA模型
- 在python中使用正则表达式查找可嵌套字符串组
- 利用Opencv实现微信跳一跳脚本源码放送(C++实现嵌套python)
- python 字典嵌套赋值
- 零基础学python-16.6 嵌套作用域
- JSONModel的模型嵌套
- python&C++ python读取tensorflow模型参数,写入txt文件,C++读取txt文件
- python网络编程--事件驱动模型
- pythonWeb -- Django开发- 模型Model 和 数据库的操作
- python 生产者消费者模型
- python 函数动态传参,名称空间,嵌套 局部全局变量
- python机器学习及实践(从零开始kaggle竞赛之路)第二章的2.1.2.5集成模型程序报错:numpy.core._internal.AxisError: axis 0 is out of bo
- 举例详解Python中循环语句的嵌套使用