首页 > 其他分享 > pydantic学习与使用-17.使用 json_encoders 格式化 datetime 类型

pydantic学习与使用-17.使用 json_encoders 格式化 datetime 类型

时间:2023-10-10 17:03:25浏览次数:29  
标签:encoders name 17 create datetime json id

前言

使用datetime 日期类型时,想格式化成自定义的"%Y-%m-%d %H:%M:%S" 格式

datetime 类型

from pydantic import BaseModel
from datetime import datetime
# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/

class UserInfo(BaseModel):
    id: int
    name: str
    create_time: datetime=datetime.now()

user = UserInfo(**{"id": 1, "name": "yoyo"})
print(user.json())

转json格式,输出结果

{"id": 1, "name": "yoyo", "create_time": "2023-10-10T16:47:27.023813"}

'create_time'日期时间格式,我期望得到的格式是2023-10-10 16:47:27

json_encoders 格式化 datetime 类型

json_encoders 可以格式指定的类型

from pydantic import BaseModel
from datetime import datetime

# 上海悠悠 wx:283340479
# blog:https://www.cnblogs.com/yoyoketang/


class UserInfo(BaseModel):
    id: int
    name: str
    create_time: datetime=datetime.now()

    class Config:
        json_encoders = {
            datetime: lambda v: v.strftime("%Y-%m-%d %H:%M:%S")
        }


user = UserInfo(**{"id": 1, "name": "yoyo"})
print(user.json())

运行结果:

{"id": 1, "name": "yoyo", "create_time": "2023-10-10 16:48:47"}

标签:encoders,name,17,create,datetime,json,id
From: https://www.cnblogs.com/yoyoketang/p/17755131.html

相关文章

  • Date与LocalDateTime转换
    在Java中,可以使用java.util.Date和java.time.LocalDateTime类来表示日期和时间。如果需要将Date转换为LocalDateTime,可以使用toInstant()方法将Date转换为Instant,然后再使用atZone()方法将其转换为ZoneId,最后使用toLocalDateTime()方法将其转换为LocalDateTime。示例如下:Datedat......
  • 【LG-P7617】题解
    题解思路不用关心每个数的每一位是什么、哪几位相同,我们只需记录每个数出现了哪几个数字,可以使用类似于状态压缩的思想记录每个数的状压形式,比如一个数为\((4)_{10}\),那么他的状态压缩形式为\((00001)_2\)。当两个数在状态压缩表示下有一位相同,我们就认为这两个数是一对,每个......
  • LORA射频开关芯片ATR5179 VS PE4259 单刀双掷开关单芯片
    PE4259UltraCMOS@射频开关是专为涵盖10兆赫-3000兆赫的广泛应用。这款反射式开关集成了具有低电压的板上CMOS控制逻辑CMOS兼容的控制接口,并可将使用单引脚或互补引脚控制控制的输入端。ATR5179是一款采用pHEMTGaAs工艺制作的单刀双掷开关单芯片,芯片内部电路结构简单,该芯片的推......
  • Python 时间_Datetime_Module
    Datetime_Module作用:处理日期和时间一、Datetime模块中的类datetime:表示日期和时间,可以处理年、月、日、时、分、秒。date:表示日期,主要用于处理年、月、日。time:表示时间,主要用于处理时、分、秒。timedelta:表示时间间隔,即两个时间点的间隔,主要用于做时间加减。tzinfo:时区......
  • CF1746F Kazaee
    prologue数组范围一定要看好了开,不然容易我一样,调试调了一页多。还有就是不要傻乎乎地只跑一次和哈希,因为和哈希(从下面地佬的题解中才知道)它其实算作是一种trick(类比SA(Stimulate_anneal)。analysis这个题目的第二个询问时询问一个区间里面出现过的正整数的次数是否为\(k\)的......
  • SQL驱动包报错(8.0换成5.17)
    driverClassName=com.mysql.cj.jdbc.Driver,换成:driverClassName=com.mysql.jdbc.Driver  ......
  • 39-17
    设计一个算法用于判断带头结点的循环双链表是否对称循环双链表!!#include<stdio.h>#include<stdlib.h>typedefstructnode{intdata;structnode*pre,*next;}LNode,*LinkList;voidCreateList(LinkList&L){L=(LinkList)malloc(sizeof(LNode));L-......
  • Localdatetime 8 全局配置
    @ConfigurationpublicclassLocalDateTimeSerializerConfig{privatestaticfinalDateTimeFormatterDATE_TIME_FORMATTER=DateTimeFormatter.ofPattern("yyyy-MM-ddHH:mm:ss");privatestaticfinalDateTimeFormatterDATE_FORMATTER=DateTimeFor......
  • Python入门示例系列17 输入与输出( 格式化输出 )
    Python入门示例系列17输入与输出 读取键盘输入(input)Python提供了input()内置函数从标准输入(键盘)读入一行文本,默认的标准输入是键盘。返回结果是字符串。>>>astr=input("请输入:");##input('提示的内容')请输入:123>>>print(astr)123 如果从键盘输入两个数字,并求这......
  • P6346 [CCO2017] 专业网络 & CF1251E1 Voting(Easy Version)
    analysis这个题目我们可以考虑用贪心来做。我们不难看出来,这个题目是要让我们推出这么个结论:花小钱,办大人。整体贪心的思路就出来了,然后就是实现部分。因为我们认识的人随便是谁都可以。所以我们如果要买肯定是买最便宜的。这个性质可以用小根堆来维护。同时我们还可以维护我......