【发布时间】:2016-10-24 20:03:24
【问题描述】:
我有一个 Python 中的 json 文件和一个相对的 json-schema, 我想从输入 json 文件中过滤掉所有不满足相对 json 模式的元素。
例如:
架构
{
"type":"object",
"$schema": "http://json-schema.org/draft-03/schema",
"required":false,
"properties":{
"address": {
"type":"object",
"required":true,
"properties":{
"city": {
"type":"string",
"required":true
},
"houseNumber": {
"type":"number",
"required":false
},
"streetAddress": {
"type":"string",
"required":true
}
}
},
"phoneNumber": {
"type":"array",
"required":false,
"items":
{
"type":"object",
"required":false,
"properties":{
"number": {
"type":"string",
"required":false
},
"type": {
"type":"string",
"required":false
}
}
}
}
}
}
Json 输入:
{
"address":{
"streetAddress": "21 2nd Street",
"city":"New York",
"houseNumber":12
},
"phoneNumber":
[
{
"type":"home",
"number":"212 555-1234",
"description":"blabla"
}
]
}
元素 "description":"blabla" 不存在于 json 架构中,必须进行过滤。
Json 输出:
{
"address":{
"streetAddress": "21 2nd Street",
"city":"New York",
"houseNumber":12
},
"phoneNumber":
[
{
"type":"home",
"number":"212 555-1234"
}
]
}
我找到了这个https://github.com/alank64/json-schema-filter,但它是用于 javascript 的。 你知道任何可以在 python 中执行的脚本吗?
【问题讨论】:
-
JSON Schema 是为验证而非过滤数据而设计的。
-
如果您解决了问题,您能分享一下解决方案吗?谢谢!
-
我假设您需要一个 json 模式验证器才能执行此过滤。所以我想你可以在github.com/Julian/jsonschema 中询问是否有任何方法可以使用该包轻松实现过滤。
标签: python json jsonschema