我正在写一个通知服务,用于发送普通用户和管理员用户的一些电子邮件,这些电子邮件可以与此服务收集的数据呈现。 数据结构如下所示:
schema 1
{
"arrearing_day": 12,
"user_count": 32,
"project_count": 32,
"data": [
{
"user_name": "stackoverflow",
"balance": 123,
"estimated_per_day": 32,
"phone": "18812314",
"email": "14253@feing"
},
]
}
schema 2
{
"user_count": 2,
"resource_count": 3,
"arrearing_day": 15,
"data": [
{
"user_name": "stackoverflow",
"phone": "18816208",
"email": "142547@stackoverflow.net",
"projects": [
{
"prject_name": "project_1",
"resources": [
{
"resource_type": "compute",
"resource_name": "compute_1",
"arrearing_day": 4
},
]
}
]
},
]
}
schema 3
{
"user_count": 2,
"resource_count": 3,
"releasing_day": 7,
"data": [
{
"user_name": "stackoverflow",
"phone": "18816208",
"email": "142547@stackoverflow.net",
"projects": [
{
"prject_name": "project_1",
"resources": [
{
"resource_type": "compute",
"resource_name": "compute_1",
"releasing_day": 4
},
{
"resource_type": "compute",
"resource_name": "compute_1",
"releasing_day": 4
},
]
},
]
}
]
}
schema 4
{
"user_count": 2,
"resource_count": 3,
"releasing_day": 7,
"data": [
{
"user_name": "stackoverflow",
"phone": "18816208",
"email": "142547@stackoverflow.net",
"projects": [
{
"prject_name": "project_1",
"resources": [
{
"resource_type": "compute",
"resource_name": "compute_1",
},
{
"resource_type": "compute",
"resource_name": "compute_1",
},
]
}
]
},
]
}
schema 5
{
"user_name": "stackoverflow",
"account_name": "stackoverflow_account_name",
"scan_time": "2019-08-26 01:00:00",
"estimated_per_day": 12,
"balance": 122,
"arrearing_days": 15,
"resource_count": 3
}
schema 6
{
"user_name": "stackoverflow",
"account_name": "stackoverflow_account_name",
"project_count": 2,
"resource_count": 2,
"data": [
{
"project_name": "p_1",
"resources": [
{
"resource_type": "compute",
"resource_name": "compute-1",
"releasing_days": 7
}
]
}
]
}
从模式1到模式6,它们都有相同的用户名、帐户名、, 项目计数,资源计数
从模式2到模式4,它们在某些属性上几乎没有什么不同
所有键及其值都可以从两个dict用户、一个或多个资源中获取
我想知道一个处理如何获取所需数据的好方法
第一次尝试:
我尝试创建了6个方法,在我创建的方法中,我首先在方法内部构建模式,并使用用户和资源或两者来实现模式
在执行这个想法的过程中,我对代码感到厌烦,这个方法太大太难看了
第二次尝试:
所以,我遇到了另一种方法,它构建了一个类似dict的
{'method:send_user_arrearing_notification': schema_1}
并在我所有的数据获取方法中使用这个dict。它看起来更好,但还是太多余了
第三次尝试:
我在想我们是否可以使用nest dict,比如:
base_dict = {
"user_name": "stackoverflow",
"account_name": "stackoverflow_account_name",
"project_count": 2,
"resource_count": 2,
}
user_notify_dict = base_dict.update({'arrearing_day': 12})
因为我是一个优秀的程序员,我不知道这是否是一个好方法,而且我不确定第一次尝试和第二次尝试是否合适
希望你们能帮助我,提前谢谢你们
目前没有回答
相关问题 更多 >
编程相关推荐