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 等之一?

  1. 我会使用正则表达式。

RobertL 为 Unix Unix 时间戳提供 this 正则表达式模式。

  1. 使用 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 ...
  }
}