python - 需要使用示例静态 JSON 验证和验证脚本生成的结果 JSON 是否正确
问题描述
我有一个脚本,它生成 JSON(values
将分配给预定义keys
)作为输出并将其上传到云端。我需要编写一个例程作为测试脚本来验证JSONvalues
的正确位置key
。如果测试脚本结果True
只需要继续上传结果到云端。
下面我将分享一个预定义的示例 JSON,它将充当测试脚本的主干,需要将脚本的输出与示例 JSON 进行比较。
{
"first_name":"",
"last_name":"",
"age":"",
"dob":"",
"address":[
{
"address1":"",
"address2":""
}
],
"mobile":"",
"telephone":"",
"education":[
{
"primary_education":"",
"seconday_education":"",
"high_school":"",
"university":""
}
],
"work_experience":[
{
"company_name":"",
"company_address":"",
"position":"",
"joined_date":"",
"resigned_date":""
},
{
"company_name":"",
"company_address":"",
"position":"",
"joined_date":"",
"resigned_date":""
}
]
}
在我的脑海中,我正在努力编写算法/测试脚本以在 python 中完成这项任务。请帮我解决这个问题。我被这个问题困扰了好几天,我来堆栈溢出以寻求一个好的解决方案
解决方案
该jsonschema
软件包可能提供了您希望明智地进行验证的所有内容。https://pypi.org/project/jsonschema/
致电:
jsonschema.validate(instance=my_json_text, schema=schema_text)
会告诉你是否有“好” my_json_text
。
举个简单的例子,您schema_text
可能是:
{
"type" : "object",
"required" : [
"ID",
"name",
"url"
],
"properties" : {
"ID" : {"type" : "string", "minLength" : 1},
"name" : {"type" : "string", "minLength" : 10},
"url" : {"type" : "string", "minLength" : 20}
}
}
这表示根元素具有某些必需的字段,此外,这些字段必须具有某种类型和一定的长度。模式验证支持嵌套的 json 和数组以及 bool 等。我们经常使用它来验证从 graphql 端点返回的复杂数据,用于测试和数据处理,作为我们管道更密集阶段之前的健全性检查。这个小例子只是“冰山一角”,但应该给你一个想法。
推荐阅读
- c++ - 有没有办法通过按 f5 或 VScode 中的任何其他键来编译 C++ 代码?
- haskell - 了解递归的评估(haskell)
- reactjs - 为供应商添加多个入口点后的 Webpack 错误
- reactjs - 对我的应用程序中的内存泄漏作出反应
- java - ARCore:从锚点或姿势获取 2d 坐标
- python - 在 python 中读取用户输入可能性的快速方法
- angular - HttpClient 发布在可观察链中的第二次调用时返回 Observable
- angular - 无法设置 fileReplacements 以用 Angular 11 替换文件夹内容
- file - Minecraft 的块/区域数据中是否缺少 zlib 未压缩大小?
- python - Python 从 Dict 写入 csv 文件