gpt4 book ai didi

python - 如何在 Python3 中验证 json 结构

转载 作者:行者123 更新时间:2023-11-28 22:29:31 25 4
gpt4 key购买 nike

我正在使用 Python3.5 和 Django 作为 Web api。当我提到输入时,我指的是 HTTP 请求参数。我有一个参数,我需要在进一步处理之前验证 JSON 数据。

我有一个基本的 json 结构,输入必须在其中。例子,

{
"error": "bool",
"data": [
{
"name": "string",
"age": "number"
},
{
"name": "string",
"age": "number"
},
...
]
}

上面的 JSON 表示我希望输入的结构。键是预定义的,值表示我期望的该键的数据类型。我遇到了一个执行此验证的 Python 库 ( jsonschema ),但我找不到任何处理动态数据的文档。即 JSON 数组“数据”中的对象可以是任意数量,当然这是我为解释基本要求而想到的最简单的场景。在这种情况下,我该如何验证我的 json

解决方案here没有帮助,因为它只是根据 Django 模型检查 json 是否正确。我的 json 与 Django 模型无关。它是一个简单的 json 结构。它仍然没有告诉我如何验证动态对象

最佳答案

JSON Schema 是一种用于验证 JSON 的规范; jsonschema 只是一个实现它的 Python 库。它确实允许您指定一个键可以包含任意数量的元素。

验证您的代码的 JSON 架构示例可能是:

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"additionalProperties": false,
"required": [
"error",
"data"
],
"properties": {
"error": {
"type": "boolean"
},
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
}
}
}
}
}
}

参见 https://spacetelescope.github.io/understanding-json-schema/一个好的概述

关于python - 如何在 Python3 中验证 json 结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42977128/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com