扩展 (python's) jsonschema 模块以允许指定非原始 属性 类型
Extend (python's) jsonschema module to allow specification of non-primitive property types
我有一种情况,我希望一系列模块化组件通过内联 json 模式定义来表达它们的参数要求,作为包含字典的属性保存在代码中,其中 json模式定义被存储。这用于在运行时验证输入,但也用于在 design/specification 时构建 UI。
大多数时候,参数要求完全符合普通 string
、number
、object
子类别,如正常 json 模式所定义 - 但有时我想指定一个特定的 属性 是一个非常特殊的 python 数据类型——可能是 pandas.DataFrame
、numpy.ndarray
或 MyClass
。
很明显,我正在推动 json 架构文档的正常预期,但这感觉好像它可能有用,我想知道核心的扩展是否以及是否一组数据类型是可能的——如果是这样,如何按照这些思路定义一些东西。
{ "title" : "Named DataFrame",
"type" : "object",
"properties" : {
"name" : { "type" : "string",
"description" : "Name of a dataframe"},
"dataframe" : { "description" : "A pandas.DataFrame object",
"type" : pandas.DataFrame }
},
"additionalProperties" : "false"}
是的,负责此扩展性的对象是 jsonschema.TypeChecker。
我有一种情况,我希望一系列模块化组件通过内联 json 模式定义来表达它们的参数要求,作为包含字典的属性保存在代码中,其中 json模式定义被存储。这用于在运行时验证输入,但也用于在 design/specification 时构建 UI。
大多数时候,参数要求完全符合普通 string
、number
、object
子类别,如正常 json 模式所定义 - 但有时我想指定一个特定的 属性 是一个非常特殊的 python 数据类型——可能是 pandas.DataFrame
、numpy.ndarray
或 MyClass
。
很明显,我正在推动 json 架构文档的正常预期,但这感觉好像它可能有用,我想知道核心的扩展是否以及是否一组数据类型是可能的——如果是这样,如何按照这些思路定义一些东西。
{ "title" : "Named DataFrame",
"type" : "object",
"properties" : {
"name" : { "type" : "string",
"description" : "Name of a dataframe"},
"dataframe" : { "description" : "A pandas.DataFrame object",
"type" : pandas.DataFrame }
},
"additionalProperties" : "false"}
是的,负责此扩展性的对象是 jsonschema.TypeChecker。