JSON lambda 中的模式验证器 python
JSON schema validator in lambda python
在我的 AWS API 端点中,我将接收一些 JSON 数据,我需要使用 python.[=14 根据我的 lambda 函数中的模式验证它们=]
数据看起来有点像这样:
{
"metadata": [
{
"fixedkey1": 1,
"fixedkey2": 2
}
],
"UNIX_TIMESTAMP": [
{
"ONE_OUT_OF_10_PREDEFINED_VALUE": "21.5"
},
{
"ONE_OUT_OF_10_PREDEFINED_VALUE": "5"
}
],
"ANOTHER_UNIX_TIMESTAMP": [
{
"ONE_OUT_OF_10_PREDEFINED_VALUE": "10"
}
]
}
我的问题是,如何在模式中定义 UNIX 时间戳(对象中可能有很多)?
此外,我如何检查 ONE_OUT_OF_10_PREDEFINED_VALUE 键是否在预定义列表中(例如 TE,RI,KH
等之一?
- 我会使用正则表达式。
RobertL 为 Unix Unix 时间戳提供 this 正则表达式模式。
- 使用
in
python 关键字。
您可以使用 format
关键字验证时间戳(只需确保您的特定实现支持格式验证并启用它)-- {"format": "datetime"}
。您可以使用 enum
.
检查一个值是否在明确的可能性范围内
对于 属性 名称,使用 propertyNames
关键字(它验证 属性 字符串本身):
{
"type": "object",
"propertyNames": { "format": "datetime" },
"additionalProperties": {
.. schema for validating the value of the properties ...
}
}
或
{
"type": "object",
"propertyNames": { "enum": [ "TE", "RI", "KH" ] },
"additionalProperties": {
.. schema for validating the value of the properties ...
}
}
在我的 AWS API 端点中,我将接收一些 JSON 数据,我需要使用 python.[=14 根据我的 lambda 函数中的模式验证它们=]
数据看起来有点像这样:
{
"metadata": [
{
"fixedkey1": 1,
"fixedkey2": 2
}
],
"UNIX_TIMESTAMP": [
{
"ONE_OUT_OF_10_PREDEFINED_VALUE": "21.5"
},
{
"ONE_OUT_OF_10_PREDEFINED_VALUE": "5"
}
],
"ANOTHER_UNIX_TIMESTAMP": [
{
"ONE_OUT_OF_10_PREDEFINED_VALUE": "10"
}
]
}
我的问题是,如何在模式中定义 UNIX 时间戳(对象中可能有很多)?
此外,我如何检查 ONE_OUT_OF_10_PREDEFINED_VALUE 键是否在预定义列表中(例如 TE,RI,KH
等之一?
- 我会使用正则表达式。
RobertL 为 Unix Unix 时间戳提供 this 正则表达式模式。
- 使用
in
python 关键字。
您可以使用 format
关键字验证时间戳(只需确保您的特定实现支持格式验证并启用它)-- {"format": "datetime"}
。您可以使用 enum
.
对于 属性 名称,使用 propertyNames
关键字(它验证 属性 字符串本身):
{
"type": "object",
"propertyNames": { "format": "datetime" },
"additionalProperties": {
.. schema for validating the value of the properties ...
}
}
或
{
"type": "object",
"propertyNames": { "enum": [ "TE", "RI", "KH" ] },
"additionalProperties": {
.. schema for validating the value of the properties ...
}
}