python - 如何定义字典,其值显示什么类型应该是属性,哪个名称用作键?
问题描述
我正在开发应用程序,它应该验证 JSON。属性具有不同的类型(数字、字符串、日期),这就是为什么我不仅要验证属性的存在,还要验证它们的值是否属于所需的类型。
这就是为什么我想定义字典,哪个键是属性的名称,值是类型,这个属性应该是(使用运算符isinstance
或以其他方式)。但我不知道如何在 Python 中实现这一点。像这样的东西:
map_of_property_to_classes: Dict[str, any]
class_name = map_of_property_to_classes["property_name"]
print(isinstance("property_name", class_name))
有人可以给个提示吗?
解决方案
你在寻找类似下面的东西吗?
from typing import Dict
def validate(data: Dict, meta_data: Dict) -> None:
for k, v in data.items():
if isinstance(v, meta_data[k]):
print('OK')
else:
print(f'{v} must be of type {meta_data[k]}')
_data = {'x': 12, 'name': 12}
_meta_data = {'x': int, 'name': str}
validate(_data,_meta_data)
输出
OK
12 must be of type <class 'str'>
推荐阅读
- android - 使用 Android Navigation 将数据传回上一个片段
- kubernetes - 除了 80 / 443 之外,我可以为 Kubernetes 入口设置自定义端口以侦听吗?
- python - 如何要求用户输入数字,然后将可被 3 整除的数字相加?
- javascript - API 在 MVC 中扮演什么角色?
- c# - 如何通过 Visual Studio 在 C# 中创建和使用资源文件?
- sql - 如何在网格的模板字段中将真正的 0 显示为 0 而不是空的?
- python - 对包含表示 Pandas 中软件版本的字符串的列进行排序
- r - 在空格之前提取字符串文本
- c# - 未找到参考 - 尝试制作提交按钮
- php - 合并两个集合只返回一个