当前位置: 首页 > news >正文

网站用户界面ui设计细节wordpress自动留言

网站用户界面ui设计细节,wordpress自动留言,一般上什么网站,中国新闻社招聘Python中的JSON工具库 复杂数据类型转换1、json52、dataclasses_json JSON数据校验1、jsonschema2、pydantic3、Voluptuous 在上一节“Python小酷库系列#xff1a;Python中的JSON工具库(1)”中#xff0c;我们介绍了“普通玩家”和“高性能玩家”常用的JSON工具库#xff0… Python中的JSON工具库 复杂数据类型转换1、json52、dataclasses_json JSON数据校验1、jsonschema2、pydantic3、Voluptuous 在上一节“Python小酷库系列Python中的JSON工具库(1)”中我们介绍了“普通玩家”和“高性能玩家”常用的JSON工具库本节我们将拓宽视野从功能性的角度介绍一些Python中的JSON工具库。 复杂数据类型转换 1、json5 json5 是 JSON 的超集允许更宽松的语法如允许注释、单引号、不加引号的键等适合人类书写配置文件。json5 库提供了对 JSON5 格式的解析支持。 安装 pip install json5基本使用 import json5 # JSON5 字符串包含注释、单引号、不加引号的键等 json5_str {// 这是一个注释unquotedKey: value,quotedKey: 123,trailingComma: true, }# 解析 JSON5 字符串 data json5.loads(json5_str) print(data) # 输出: {unquotedKey: value, quotedKey: 123, trailingComma: True}json5 库支持的扩展语法解析 特性说明注释支持 // 单行注释 和 /* */ 多行注释尾逗号允许最后一个元素后写逗号单引号字符串‘text’ 与 “text” 都合法未加引号的键允许键名不加引号如 foo: 1十六进制数字支持 0x1234 数字表示正负号数字支持 1、-2多行字符串可以使用 \ 跨行字符串数字中的下划线如 1_000_000提高可读性 写入 JSON5 数据 虽然 json5 支持读取 JSON5 文件但并不支持将 Python 对象序列化为 JSON5 格式即没有 json5.dumps() 带有 JSON5 特性的输出功能。它只能写成标准 JSON data {foo: bar} print(json5.dumps(data)) # 输出: {foo: bar}2、dataclasses_json dataclasses-json主要用于dataclasses 的 JSON 序列化/反序列化它还支持dataclasses与dict类型的互相转化 是 dataclasses 的一个强力补丁库。 安装 pip install dataclasses-json基本使用 from dataclasses import dataclass from dataclasses_json import dataclass_jsondataclass_json dataclass class User:id: intname: struser User(id1, nameAlice)# 序列化为 JSON 字符串 json_str user.to_json() print(json_str) # {id: 1, name: Alice}# 反序列化为 Python 对象 new_user User.from_json({id: 2, name: Bob}) print(new_user.name) # Bob# 转为字典 print(user.to_dict()) # {id: 1, name: Alice}# 从字典创建 u User.from_dict({id: 3, name: Carol}) print(u)嵌套结构支持 dataclass_json dataclass class Address:city: strzipcode: strdataclass_json dataclass class Person:name: straddress: Addressp Person(nameTom, addressAddress(cityNY, zipcode10001))print(p.to_json()) # {name: Tom, address: {city: NY, zipcode: 10001}}# 自动反序列化嵌套结构 data Person.from_json({name: Amy, address: {city: LA, zipcode: 90001}}) print(data.address.city) # LA转换配置 config函数可以用于配置字段的类型和别名等。 dataclass_json dataclass class Data:user_id: int config(field_nameuserId)time: datetime config(encoderdatetime.isoformat,decoderdatetime.fromisoformat,mm_fieldfields.DateTime())d Data(user_id1001, timedatetime(2024, 1, 1, 12, 0)) print(d.to_json()) # {userId: 1001,time:2024-01-01T12:00:00}JSON数据校验 1、jsonschema jsonschema 是 Python 中用于JSON 数据结构验证的官方实现之一遵循 JSON Schema 标准可以验证 JSON 数据是否符合你定义的“规则/结构”。 安装 pip install jsonschema基本使用 from jsonschema import validate from jsonschema.exceptions import ValidationError# 定义 JSON Schema结构规则 schema {type: object,properties: {name: {type: string},age: {type: integer, minimum: 0},},required: [name, age] }# 要校验的 JSON 数据 data {name: Alice,age: 30 }try:validate({name: Bob}, schema) except ValidationError as e:print(校验失败:, e.message) 常见规则示例 {type: object,properties: {username: {type: string, minLength: 3, pattern: ^[a-zA-Z0-9_]$},age: {type: integer, minimum: 0, maximum: 120},email: {type: string, format: email},tags: {type: array,items: {type: string},maxItems: 5},active: {type: boolean}},required: [username, email] }**自定义规则 ** from jsonschema import Draft7Validator, FormatCheckerschema {type: object,properties: {phone: {type: string, format: phone}} }# 添加自定义格式检查器 FormatChecker.cls_checks(phone) def is_phone(value):import rereturn bool(re.match(r^\d{11}$, value))data {phone: 13800138000}validate(data, schema, format_checkerFormatChecker())数组验证 schema {type: array,items: {type: number},minItems: 1,uniqueItems: True }validate([1, 2, 3], schema) # 正确 validate([], schema) # 失败元素太少2、pydantic Pydantic 是 Python 中最流行的数据验证和数据模型库它的功能完全有必要另开一篇文章来详细讨论这里仅仅介绍一下它在JSON 数据校验中的使用。 安装 pip install pydantic基本使用 from pydantic import Fieldclass Product(BaseModel):name: str Field(..., min_length3)price: float Field(..., gt0, lt10000)# 自动校验 JSON 字段 try:Product.model_validate({name: P, price: -10}) except ValidationError as e:print(e)数组与复杂结构 from typing import Listclass Tag(BaseModel):name: strclass Post(BaseModel):title: strtags: List[Tag]post_data {title: My Post,tags: [{name: Python}, {name: FastAPI}] }post Post.model_validate(post_data) print(post.tags[0].name) # Python自定义校验器 from pydantic import field_validatorclass User(BaseModel):username: strfield_validator(username)def no_spaces(cls, v):if in v:raise ValueError(username cant contain spaces)return v3、Voluptuous Voluptuous 是一个用于 Python 数据校验的库语法灵活、结构清晰不同于jsonschema 所遵循JSON Schema 标准它采用的是「函数式」「声明式」风格。 安装 pip install voluptuous基本使用 from voluptuous import Schema, Required, All, Length, Range,MultipleInvalidschema Schema({Required(name): All(str, Length(min2)),Required(age): All(int, Range(min0, max120)),email: str, })data {name: Alice,age: 30,email: aliceexample.com }try:schema({name: A, age: -1}) except MultipleInvalid as e:print(校验失败:, e)常用的构造器和校验器主要有 校验器功能Required(…)必须字段Optional(…)可选字段All(…)多重条件组合校验器Length(min, max)字符串或列表长度限制Range(min, max)数值范围限制Match(r’^\w$)正则匹配In([…])枚举值必须属于其中之一Any(A, B)多个类型之一[type]列表中每一项的类型{str: int}键值类型均为特定类型的 dict 嵌套结构与数组校验 config_schema Schema({Required(host): str,Required(port): All(int, Range(min1024, max65535)),debug: bool,users: [{Required(name): str,email: str}] })config {host: localhost,port: 8000,debug: True,users: [{name: admin, email: adminexample.com}] }print(config_schema(config))自定义验证规则 from voluptuous import Invaliddef is_even(v):if v % 2 ! 0:raise Invalid(必须为偶数)return vschema Schema({number: is_even}) print(schema({number: 4})) # print(schema({number: 5})) # 报错
http://www.hkea.cn/news/14390519/

相关文章:

  • 建设网站分几个步骤对网站建设有什么样意见
  • 成都网站排名生客seo深圳市网站建设科技
  • 无锡网站推网站适配手机怎么做
  • wordpress站内统计插件建盏
  • 找人做网站应该注意什么成都市企业网站建设
  • 盘锦公司做网站凡科网址
  • 网站建设资金请示珠海市工程造价信息网
  • 中国档案网站建设的特点雁塔网站建设
  • 东莞网站建设公司排名佛山建网站定制
  • 企业公司网站建设彩票网站为啥链接做两次跳转
  • 余姚网站建设 熊掌号河北建设机械协会网站
  • 武昌做网站报价东莞网站建设部落
  • 乐都企业网站建设哪家快网站备案忘记密码怎么办
  • 大气手机企业网站微信小程序第三方平台
  • 公司网站建设合同模板山东建设局网站
  • 各大公司开源网站国内十大微信小程序开发公司
  • 神秘网站网站建设项目需求书
  • 广告制作与设计专业wordpress搜索优化
  • flash网站模板中心邯郸信息港房屋出租
  • 收废品做网站为什么我的网站备案通过还是显示未备案
  • 甘肃省住房城乡建设部网站手机端网站的区别
  • 天津如何做百度的网站购物网站开发文档
  • 网站大全免费下载英文广告网站模板免费下载
  • 南阳网站备案seo公司系统
  • 苏州优秀网站设计企业wordpress固定链接怎么设置好
  • 淘宝店做网站建设不能开直通车河西网站建设公司
  • 网站流量的重要性怎样会展网站建设
  • 设计官网首页全域seo
  • 自己创建一个网站wordpress 背景图片
  • 福州企业网站建设网站编程脚本语言