python pydantic

文章介绍了如何在Python中使用isdigit()方法检查整数字符串,并通过try-except语句和float()函数转换数字字符串。同时,展示了如何使用Pydantic库进行数据验证和对象的JSON编码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# # 使用 isdigit() 方法检查整数字符串
# num_str = "12345"
# if num_str.isdigit():
#     print("字符串可以转为数字")
# else:
#     print("字符串不是数字字符串")
#
# # 使用 try-except 语句和 float() 函数检查数字字符串
# num_str = "3.14159"
# try:
#     float(num_str)
#     print("字符串可以转为数字")
# except ValueError:
#     print("字符串不是数字字符串")

from pydantic import BaseModel
from typing import Optional
from typing import Union
import json


class Position(BaseModel):
    name: str
    level: int


class Department(BaseModel):
    name: str
    desc: str
    pos: Position


class Person(BaseModel):
    # name无默认值,是必填项
    id: int
    name: str
    # name: Optional[str] # 类型为str,不填写默认设置为None
    # 无默认值可以不填
    age: int = 18 # 设置默认值
    entry_time: Union[int, str] # 两种类型都可以
    department: Department
    # position: Position


pos = Position(name="python dev", level=3)
dep = Department(name="产研部", desc="产品研发", pos=pos)

p = Person(id=1, name="Tom", age=27, entry_time="2023-10-13", department=dep)

# p = Person()
print(
    p.json())  # {"id": 1, "name": "Tom", "age": 27, "entry_time": "2023-10-13", "department": {"name": "\u4ea7\u7814\u90e8", "desc": "\u4ea7\u54c1\u7814\u53d1", "pos": {"name": "python dev", "level": 3}}}
print(
    p.dict())  # {'id': 1, 'name': 'Tom', 'age': 27, 'entry_time': '2023-10-13', 'department': {'name': '产研部', 'desc': '产品研发', 'pos': {'name': 'python dev', 'level': 3}}}
print(json.dumps(p.dict(),
                 ensure_ascii=False))  # {"id": 1, "name": "Tom", "age": 27, "entry_time": "2023-10-13", "department": {"name": "产研部", "desc": "产品研发", "pos": {"name": "python dev", "level": 3}}}
# print(p.age)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值