首页 > 其他分享 >jsonSchema进行日志格式校验

jsonSchema进行日志格式校验

时间:2022-12-06 17:55:47浏览次数:72  
标签:description format 校验 json jsonSchema 日志 type schema

jsonSchema

官网

功能

1、属性校验
2、属性类型校验
3、属性值校验

from jsonschema import validate, draft7_format_checker
from jsonschema.exceptions import SchemaError, ValidationError

my_schema = {
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "TestInfo",
    "description": "some information about test",
    "type": "object",
    "properties": {
        "name": {
            "description": "Name of the test"
            ,"type": "object"
            ,"properties": {
                "str":{
                    "description": "Name of the test",
                    "type": "string"
                }
            }
            ,"required":['str']
        },
        "age": {
            "description": "age of test",
            "type": "integer"
        }
    },
    "required": [
        "name", "age"
    ]
}

# json数据:
json_data = {
    "name": {"str11":'bbbbb'},
    "age": 25

}

# 验证:
def json_check(json_data):
    try:
        validate(instance=json_data, schema=my_schema, format_checker=draft7_format_checker)
    except SchemaError as e:
        return 1,"验证模式schema出错,出错位置:{},提示信息:{}".format(" --> ".join([i for i in e.path if i]), e.message)
    except ValidationError as e:
        return 1,"不符合schema规定,出错字段:{},提示信息:{}".format(" --> ".join([i for i in e.path if i]), e.message)
    else:
        return 0,'success'


print(json_check(json_data))

标签:description,format,校验,json,jsonSchema,日志,type,schema
From: https://www.cnblogs.com/dch-21/p/16956039.html

相关文章

  • ansible 清理k8s集群的node节点日志
    目录ansible清理k8s集群的node节点日志获取对应节点信息脚本删除各个节点的日志脚本ansible分发clear_docker_log.sh并做成计划任务ansible清理k8s集群的node节点日志......
  • 关于使用SQL Server always on 高可用集群下日志ldf文件过大问题清理
    该操作存在风险!谨慎操作!1.在主库中的alwayson高可用性->可用性组中->可用性数据库右键将数据库进行删除->将其他可用性副本进行删除   2.将数据库由完整改......
  • springboot2 搭建日志收集系统存入mongodb + redis+mq+线程池+xxljobs
    我们看到了高效批量插入mongodb速度还不错,那么我们的系统日志收集怎么做呢。当然当前文件日志收集效果也不错,比如前面博文写的elkf搭建日志收集系统。但我们系统中总是有......
  • 详解监听MySQL的binlog日志工具分析:Canal
    Canal是阿里巴巴旗下的一款开源项目,利用Java开发。主要用途是基于MySQL数据库增量日志解析,提供增量数据订阅和消费,目前主要支持MySQL。GitHub地址:https://github.com/alib......
  • Spring自学日志03-事务
    目录一、事务的基本概念1.1、事务的ACID属性1.2、事务的隔离级别1.3、事务的传播机制1.4、通过注解开启事务一、事务的基本概念1.1、事务的ACID属性提到事务,不可避免需......
  • mysql基础问题三问(底层逻辑;正在执行;日志观察)
    背景:经常面试会遇到且实际工作中也会应用到的三个场景:目录:一.mysql查询时的底层原理是什么?二.如何查看正在执行的mysql语句?三.如何观察mysql运行过程中的日志信息?--......
  • 日志-2022-12
    1,青蛙......
  • 情绪日志-2022-12
    情绪......
  • Linux如何查看日志最后几行?
    Linux如何查看日志最后几行?在Linux中,查看日志最后几行可以通过命令来完成,其中比较常见的命令是tail,接下来这篇文章为大家介绍一下。Linuxtail命令可用于查看文件......
  • git commit提交代码时跳过 eslint校验
    在使用命令gitcommit-m'提交信息'将本地代码提交到远程仓库时候,如果项目安装了per-commit,则会在Git键入提交信息前进行代码风格检查,如果代码不符合相应规则,则报错。......