问题标签 [python-jsonschema]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
138 浏览

python - Python jsonschema:如何查询模式以确定属性的类型?

考虑以下用例:

我以文本格式配置了网络路由器(OpenWRT),并将其转换为 JSON(具体为NetJSON),路由器使用的文本格式仅使用字符串,我必须将许多配置属性从字符串转换为布尔值和整数。

我想查询 JSON Schema 以自动确定属性的预期类型并执行正确的转换。

我们使用的 JSON 模式非常复杂,包含许多使用allOf,anyOf等合并的定义,因此仅在模式的特定部分上循环是不够的。

有没有办法使用python jsonschema 库来做到这一点,或者有其他方法吗?

PS:此功能的实现是开源的,您可以了解更多关于OpenWISP netjsonconfig 库以及将向后转换功能添加到库中的拉取请求

0 投票
0 回答
87 浏览

json - Python JSON模式挖掘

我需要一些分步教程或一些论文来学习如何创建自己的 JSON 模式挖掘工具。如果有人可以分享资源或想法,那就太好了。谢谢!

0 投票
1 回答
570 浏览

json - JSONSchema 没有捕获不正确的附加字段?

使用此架构此文件不会捕获 下的name_enlegalName_en字段parties/identifier,即使在属性additionalProperties: false上已指定。identifier

这是与:

在 OSX 上,使用python-jsonschema

我做错了什么,还是这是一个错误?

0 投票
3 回答
225 浏览

python - JSON 转储在 Python 3 中放置随机数字而不是某些字符

0 投票
1 回答
1583 浏览

python - python jsonschema 删除额外的并使用默认值

我正在使用 python jsonschema https://python-jsonschema.readthedocs.io/en/latest/ 并且我试图找到如何使用默认值并在找到时删除其他字段。

有人知道我该怎么做吗?或者可能有另一个解决方案来验证支持默认值并删除任何附加字段(如 js avj)的 jsonschema?

0 投票
1 回答
120 浏览

python - 如何将json与python中的模式进行比较?

json数据:

图案:

如何检查所有键都在那里并且它们的类型是否相同?

json_pattern.keys()只返回optionsPC,但我name, count, a1, processor, os也需要。

还有一个问题,如何知道它PCoptions包含另一个变量的变量?对不起我的英语不好。

0 投票
0 回答
693 浏览

python - jsonschema 验证无法解析“孙子”本地文件引用

背景:我有多个引用大型相同对象的 json 模式。这些对象被移动到一个子目录。在下面的示例中,出现了以下依赖项:

  1. main_schema => positive_integer
  2. main_schema => 日期
  3. 日期 => 正整数
  4. 日期 => 月份

jsonschema 库仅无法解析最后一个依赖项,处理所有其他依赖项都很好。

项目树

代码.py:

从 jsonschema 导入验证导入 json

JSON 模式

main_schema json

日期.json

月.json:

正整数.json:

问题

当我运行它时,程序失败并显示堆栈跟踪:

正如我所调查的,“孙子”依赖关系只有在更早预加载的情况下才能得到解决。因此,如果删除“日期 => 月份”依赖项,或者从 rool 级别强制“预加载”它,一切都会正常工作。

解决方法

将 main_schema.json 修改为如下所示:

如果这样做,验证将成功。但是,我真的不喜欢这种解决方法。如果您有任何解决方法的想法,请告诉我。

系统信息:

  • Windows 7的
  • Python 3.6.0
  • jsonschema 2.6.0
0 投票
1 回答
4667 浏览

json - 使用 jsonschema 和 robotsframework 验证 json

谁能帮助我开始了解如何使用 RobotFramework 通过 json-schema 验证 json 响应?

理想情况下,json-schema 通过 http 请求从外部引用:示例http://api-bl-uk.northeurope.cloudapp.azure.com/api/v1/crm/schemas/contact

目前进展:

在哪里mytest.robot

我在schemas名为的子目录中有一个架构service.json

当我运行测试时,我得到...

所以看来我错过了一个相当基本的难题:

找不到名称为“Validate Json”的关键字

更新

盲目跟随“示例代码”的问题

问题是我*** Settings ***在声明之前缺少标题Library,加上要使用的架构名称错误(在标题修复后很容易解决)。

完整示例:

现在...如何使用外部引用的架构文件?探索继续!

:)

0 投票
0 回答
808 浏览

python - 从架构中检索所有属性的列表(解析引用)

考虑一个“复杂”模式,它使用来自其他文件的引用,如下面的文件。有没有一种简单的方法来获取模式中定义的所有属性的列表,也许使用一些已经在的机制python-jsonschema?我认为我只需要顶层的属性,但通用的方法会很棒。

我需要很多应用程序,但基本上我需要能够仅对与模式中定义的模式匹配的对象的那些“属性”运行不同的操作(这样我也不会将这些操作应用于任何架构中未定义的其他属性)。例如,假设我想打印对象所具有的每个属性的值,这是在模式中定义的。为此,我需要架构定义的属性列表。另一个例子是,如果我想仅基于模式定义的属性比较两个对象。

示例应用:

0 投票
4 回答
2397 浏览

python - json.decoder.JSONDecodeError: Expecting value: , json.decoder.JSONDecodeError: Expecting property name 括在双引号中:

嗨,我正在 Python 文件中使用 JSON:

加载时出现此错误: json.decoder.JSONDecodeError: Expecting value:

或者有时当我添加一些东西时: json.decoder.JSONDecodeError: Expecting property name 括在双引号中: