美文网首页
pydantic 拆包解包

pydantic 拆包解包

作者: hehehehe | 来源:发表于2021-02-22 18:04 被阅读0次
一个星号可作用于所有的可迭代对象,称为迭代器解包操作,作为位置参数
传递给函数,两个星号只能作用于字典对象,称之为字典解包操作,作为关
键字参数传递给函数。使用 *和 ** 的解包的好处是能节省代码量

打包 tuple

def pack(a, *b):
        print type(a), a
        print type(b), b
 
pack(1, 2, 3, 4, 5)
<type 'int'> 1
<type 'tuple'> (2, 3, 4, 5)

打包 dict

def pack(a, **b):
        print type(a), a
        print type(b), b
 
pack(1, a1=2, a2=3)
<type 'int'> 1
<type 'dict'> {'a1': 2, 'a2': 3}

解包

def pack(a, b, *c):
        print type(a), a
        print type(b), b
        print type(c), c
 
score = [1.0, 2.0, 3.0, 4.0]
pack(*score)

<type 'float'> 1.0
<type 'float'> 2.0
<type 'tuple'> (3.0, 4.0)

def pack(*c):
        print type(c), c
 
student = {'score' : 1.0, 'id' : 2, 'name' : 'xiaoxiao'}
pack(*student)

<type 'tuple'> ('score', 'id', 'name')

def pack(*a, **b):
        print type(a), a
        print type(b), b
 
age = [1, 2, 3]
student = {'score' : 1.0, 'id' : 2, 'name' : 'xiaoxiao'}
pack(*age, **student)

<type 'tuple'> (1, 2, 3)
<type 'dict'> {'score': 1.0, 'id': 2, 'name': 'xiaoxiao'}
from pydantic import BaseModel
from typing import Dict, List, Sequence, Set, Tuple

class Demo(BaseModel):
    a: int # 整型
    b: float # 浮点型
    c: str # 字符串
    d: bool # 布尔型
    e: List[int] # 整型列表
    f: Dict[str, int] # 字典型,key为str,value为int
    g: Set[int] # 集合
    h: Tuple[str, int] # 元组
from typing import Union
from pydantic import BaseModel

class Time(BaseModel):
    time: Union[int, str]
        
t = Time(time=12345)
print(t.json()) # {"time": 12345}
t = Time(time = "2020-7-29")
print(t.json()) # {"time": "2020-7-29"}

可选数据类型

from typing import Optional
from pydantic import BaseModel

class Person(BaseModel):
    name: str
    age: Optional[int]

相关文章

  • pydantic 拆包解包

    打包 tuple 打包 dict 解包 可选数据类型

  • swift知识点

    Q:optional变量拆包有多少种方法A:!解包,不安全?解包,安全optional绑定,安全nil coale...

  • 【越读·手抄】No.40

    No.40 距离就是,你发一条微博,这条微博要途经北上广,进出九九八十一台路由器,中间还要被拆包解包合并包,被两百...

  • 张小龙的饭否

    距离就是,你发一条微博,这条微博要途经北上广,进出九九八十一台路由器,中间还要被拆包解包合并包,被两百个CPU进行...

  • tortoise 关联关系(外键、多对多)相关问题

    这里主要介绍在tortoise-orm中使用pydantic_model_creator创建Pydantic时,关...

  • 星号 * 以及 ** 的作用:2019-02-17

    一方面是用于计算,另一方面用于拆包和解包https://blog.csdn.net/xiaoqu001/artic...

  • python库pydantic简易教程

    一、简介 pydantic 库是 python 中用于数据接口定义检查与设置管理的库。 pydantic 在运行时...

  • Linux 打包解包/压缩解压

    范例 打包文件:把1.docx 和 2.docx 打包成 dd.tar包 解包:把 dd.tar 解包 范例 打包...

  • Pydantic库简介

    pydantic库是什么pydantic库是一种常用的用于数据接口schema定义与检查的库。 通过pydanti...

  • 2020-06-17学习笔记

    概述阶段 1.swift中允许进行多次加包,但这也就意味着需要多次解包2.解包顺序是从内向外,先解最内层的包3.g...

网友评论

      本文标题:pydantic 拆包解包

      本文链接:https://www.haomeiwen.com/subject/ylekfltx.html