获取 foreach json 架构错误的属性

2024-06-24

我正在尝试确定哪个属性导致了错误。似乎对于每种类型的错误,获取属性的方式都是不同的。

from jsonschema import Draft4Validator

request_json = {
  'num_pages': 'invalid',
  'duration': 'invalid',
  'dne': 'invalid'
}

schema = {
  "patch": {
    "type": "object",
    "properties": {
      "name": {"type": "string"},
      "location": {},
      "description": {},
      "objectives": {},
      "num_pages": {"type": "integer"},
      "duration": {"type": "integer"}
    },
    "required": ["name"],
    "additionalProperties": False
  }
}

v = Draft4Validator(schema['patch'])
errors = []

for error in v.iter_errors(request_json):
    print error.__dict__

从这个例子中,我想用字段和错误构造输出。

{
  num_pages: 'invalid is not an integer',
  duration: 'invalid is not an integer',
  'dne': 'unexpected additional property',
  'name': 'property is required'
}

目前我有以下内容

    if error.relative_schema_path[0] == 'required':
        errors.append({error.message.split(' ')[0]: 'Required property'})
    elif error.relative_path:
        # field: error_message
        errors.append({error.relative_path[0]: error.message})
    # Additional Field was found
    else:
        errors.append({error.instance.keys()[0]: error.message})

如果存在多个错误,则不能保证 error.instance.keys()[0] 正确。


The 遍历和处理错误的推荐方法 http://python-jsonschema.readthedocs.org/en/latest/errors/是使用 ErrorTree 对象。

tree = ErrorTree(v.iter_errors(instance))

从这里您可以获取实例的全局错误:

tree.errors

数组中第一项的错误:

if 1 in tree:
    tree[1].errors
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取 foreach json 架构错误的属性 的相关文章

  • Python:访问另一个类中一个类的属性和方法

    假设我有两个 A 类和 B 类 Class A A s attributes and methods here Class B B s attributes and methods here 现在我可以评估 B 类对象中 A 的属性 如下所
  • 使用 setuptools (pip) 时如何打印警告和错误

    我正在使用 setuptools 来打包代码 以便可以使用以下命令轻松安装它 cd project name pip install 在设置过程中 我想警告用户有关预先存在的配置文件的信息 并在系统上打印一些安装后说明 例如 etc pro
  • Django表单中的隐藏字段不在cleaned_data中

    我有这个表格 class CollaboratorForm forms Form user forms CharField label Username max length 100 canvas forms IntegerField wi
  • Django CollectStatic 启动大文件上传时管道损坏

    我正在尝试使用collectstatic将静态文件上传到我的S3存储桶 但我收到一个700k javascript文件的管道损坏错误 这就是错误 Copying Users wedonia work asociados server aso
  • 为什么Flask后台线程获取错误的数据库信息?

    为了将实时数据库信息推送到客户端 我在服务器端使用flask socketio 通过使用websocket将所有实时数据库信息推送到客户端 我的视图文件有一个片段 from models import Host from flask soc
  • 如何在 Google App Engine (Python) 中定义配置变量/常量?

    我是 python GAE 的新手 想知道如何快速定义和使用全局设置变量 所以说你 git 克隆我的 GAE 应用程序 然后打开config yaml 添加更改设置 应用程序就全部连接起来 如下所示 config yaml or whate
  • 无法在 PHP 中接收 JSON POST 请求

    我正在将 JSON 对象从 Java 传递到 PHP 我正在使用 jdk 1 8 和 WAMPserver 下面是Java代码 import java io IOException import org apache http client
  • 如何在我的 GUI 上绘图

    我正在设计一个 GUIPyQt当我单击一个按钮来绘制我创建的函数的数据图时 我需要显示一个 matplotlib pylab 窗口 它就像 Matlab 中使用的运行时 每次按下该按钮时 我都想将 matplotlib pylab 窗口保留
  • dask分布式内存错误

    在分布式作业上运行 Dask 时 我在调度程序上遇到以下错误 distributed core ERROR Traceback most recent call last File usr local lib python3 4 dist
  • 使用 SQLAlchemy 查询 Pandas DataFrame 时重命名列

    当您将数据查询到 pandas 数据帧时 有没有办法保留 SqlAlchemy 属性名称 这是我的数据库的简单映射 对于 school 表 我将数据库名称 SchoolDistrict 重命名为较短的 district 我从 DBA 中删除
  • Python父类访问子私有变量

    以下代码会生成错误 class A object def say something self print self foo print self bar class B A def init self self foo hello sel
  • 如何忽略 Sentry 捕获中的某些 Python 错误

    我已将 Sentry 配置为捕获 Django Celery 应用程序中的所有错误 它工作正常 但我发现一个令人讨厌的用例是当我必须重新启动我的 Celery 工作人员 PostgreSQL 数据库或消息服务器时 这会导致数千种各种 无法访
  • numpy.polyval() 的反函数

    我想知道 np polyval 是否有一个方便的反函数 我在其中给出 y 值并求解 x 我知道我可以做到这一点的一种方法是 import numpy as np Set up the question p np array 1 1 10 y
  • Python httplib 和 POST

    我目前正在使用别人编写的一段代码 它用httplib向服务器发出请求 它以正确的格式提供所有数据 例如消息正文 标头值等 问题是 每次尝试发送 POST 请求时 数据都在那里 我可以在客户端看到它 但没有任何内容到达服务器 我已经阅读了库规
  • 如何使用 opencv python 根据检测到的物体的位置生成其热图

    我需要根据对象的位置生成其热图 示例 视频帧中检测到的绿色球 如果它长时间停留在某个位置 那么该位置应该是红色的 并且球在短时间内经过的帧中的位置必须是蓝色的 这样我就需要生成热图 提前致谢 那么你在这里可以做的是 1 首先定义一个热图作为
  • 用于监视文件夹和更新数据库的 Python 守护进程

    这专门用于管理 MP3 文件 但它应该可以轻松地适用于任何包含大量文件的目录结构 我想找到或编写一个守护程序 最好用Python 来监视一个包含许多子文件夹的文件夹 这些子文件夹都应该包含X个MP3文件 每当添加 更新或删除文件时 它都应该
  • 将json数据从servlet传递到jsp到js文件

    我得到了这个创建 JSON 数据的 servlet 我想将此数据传递到一个 jsp 页面 该页面应该通过 InfoVis 工具包显示数据 servlet java JSONObject json new JSONObject JSONArr
  • pandas groupby 中两个系列的最大值和最小值

    是否可以从 groupby 中的两个系列中获取最小值和最大值 例如下面的情况 分组时c 我怎样才能得到最小值和最大值a and b同时 df pd DataFrame a 10 20 3 40 55 b 5 14 8 50 60 c x x
  • Python pandas:向我的数据框中添加一列来计算变量

    我有一个像这样的数据框 gt org group org1 1 org2 1 org3 2 org4 3 org5 3 org6 3 我想将列 count 添加到 gt 数据帧以计算组的成员数量 预期结果如下 org group count
  • print() 函数的有趣/奇怪的机制

    我正在学习Python 我目前正在学习如何定义自己的函数 并且在尝试理解返回值和打印它之间的区别时遇到了一些困难 我读到的关于这个主题的描述对我来说不太清楚 所以我开始自己尝试 我想我现在已经明白了 如果我没记错的话 区别在于你可以传递 a

随机推荐

  • 在 C# 中使用 COM dll

    我们有用 C 编写的 COM dll 并已被用 vb 6 0 编写的应用程序使用 我的公司计划在 Net 平台上编写新版本的应用程序 就性能而言 在 C 项目中使用 COM dll 时 我应该从下面列出的 3 个选项中选择什么 只需添加 d
  • 使用鼠标滚轮水平滚动浏览器窗口

    我有一个非常宽的网站 故意设计为没有垂直滚动 但有很多水平滚动 水平滚动通常对用户来说很痛苦 因此想知道是否有某种方法可以使用鼠标中键或其他滚动习惯 例如向上 向下翻页 向上 向下箭头 鼠标中键单击 拖动 来水平滚动而不是垂直滚动 Edit
  • 如何将背景图像添加到 CSS 部分

    我正在尝试在我的网站上建立并运行一个部分 我想添加背景图像而不是颜色 我尝试过阅读这里和其他网站 但我尝试的任何方法似乎都不起作用 我正在使用此部分代码 https codepen io ckor pen lBnxh https codep
  • C# Fluent API 将两个属性映射到同一列

    我的问题实际上很简单 这是MySQL表 俱乐部类别 正如您所看到的 它将俱乐部与类别链接起来 Field Type Null Key Default Extra CategoryId int NO PRI NULL ClubId int N
  • 检查 Active Directory 域控制器是否已启动并运行的 C# 方法

    我想增强我正在编写的 C 程序 以便在其中一个或多个离线时它可以利用全局目录 DC 列表中的任何一个 我想编写一个方法 根据 ADDS 是否在目标服务器上运行 而不仅仅是服务器是否可 ping 通 来返回 bool 值 public boo
  • AND OR 导致显示的结果多于应有的结果

    我正在尝试显示特定时间范围内匹配的结果 效果很好 但是 我想添加一个子句 表示显示的结果必须是 party type1 or 2 所以我这样做了 WHERE start datetime gt DATE START SELECTED AND
  • iOS 10.核心数据插入新对象 sigABRT

    我尝试了 forEntityName Game MyApp Game 在我的 dataManagerFile 中 let appDelegate UIApplication shared delegate as AppDelegate le
  • 如何将微调器添加为导航抽屉中的项目

    I want to add spinner as an item in my navigation drawer Where should I put the spinner as an item Where to inflate the
  • Servlet @WebServlet urlPatterns

    这是一个简单的问题 但我找不到快速的答案 现在我有一个servlet BaseServlet 当用户请求以下任何网址时 host host host BaseServlet 它应该始终引用相同的 servlet 并重定向到主页 当我设定 W
  • 将多个侦听器绑定到同一端口

    我在用UdpClient上课于 net 3 5我需要将多个应用程序绑定到同一个端口 So if UDP服务器广播任何请求 所有侦听该端口的应用程序都可以接收该消息 但问题是 当我尝试将应用程序绑定到同一端口时 只有一个应用程序接收该消息 而
  • 实体框架中是否存在 NHibernate.ToFuture() 扩展方法的类似方法?

    所以问题就在标题中 NHibernate 用户可以做什么 var q1 Source Companies ToFuture var q2 Source Items ToFuture var q3 Source Users ToFuture
  • 如何判断表格行是否可见?

    我想知道如何识别表行是否可见 我想使用 jQuery 来解决 您可以使用 visible http api jquery com visible selector 伪选择器 以及is http api jquery com is 方法 返回
  • Angularjs - $http 成功与当时

    我想问一下这个方法有什么区别 我关心的是 then 和 success function 和 error 之间的区别 谢谢 Simple GET request example http method GET url someUrl the
  • ggplot geom_text字体大小控制

    我尝试将条形图标签的字体更改为 10ggplot2通过这样做 ggplot data file aes x V1 y V3 fill V2 geom bar stat identity position dodge colour white
  • type: 定义一个只能是某些字符串的类型?

    我怎样才能使用typing模块 创建一个可以是某些字符串的类型 例如 假设我需要一个类型CondOperator 可以是以下任何字符串 gt lt gt lt lt gt 我本来希望CondOperator String gt lt gt
  • 发生了类型为“System.AccessViolationException”的未处理异常

    我有以下课程 public class RecipeItem public Guid ID get set public string Title get set public string Instructions get set pub
  • 将 SQL 转储导入 PostgreSQL 数据库

    我们正在切换主机 旧主机提供了我们站点 PostgreSQL 数据库的 SQL 转储 现在 我尝试在本地 WAMP 服务器上进行设置来测试这一点 唯一的问题是我不知道如何在我设置的 PostgreSQL 9 中导入这个数据库 我尝试了 pg
  • Python fuzzywuzzy 错误字符串或缓冲区期望

    我正在使用 fuzzywuzzy 在公司名称 csv 中查找近似匹配项 我正在将手动匹配的字符串与不匹配的字符串进行比较 希望找到一些有用的邻近匹配 但是 我在 fuzzywuzzy 中遇到了字符串或缓冲区错误 我的代码是 from fuz
  • typescript 派生类不能有相同的变量名?

    为什么 TypeScript 派生类不能具有相同的变量名 即使这些成员也是私人的 有没有替代方案 或者我做错了什么 class ClassTS private nom string ClaseTS constructor class Cla
  • 获取 foreach json 架构错误的属性

    我正在尝试确定哪个属性导致了错误 似乎对于每种类型的错误 获取属性的方式都是不同的 from jsonschema import Draft4Validator request json num pages invalid duration