guarantee-admin-api-v0.2/Utils/CommonUtil.py

74 lines
1.8 KiB
Python
Raw Normal View History

2022-06-14 17:14:01 +08:00
import os
import yaml
2022-05-24 02:25:59 +08:00
def sub_dict(param1, param2):
"""
获取字典的子集
Parameters:
param1: 原字典
param2: 子集字段
Returns:
子集
"""
return dict((key, value) for key, value in param1.items() if key in param2)
def df_iterrows(param):
"""
按行以数组形式返回DataFrame的indexdata
Parameters:
param: DataFrame 某个df对象
Returns:
result: list 遍历df对象每行数据包括index
"""
result = []
for row in param.iterrows():
index, data = row
result.append([index] + data.tolist())
return result
2022-06-08 17:01:39 +08:00
def get_attr(_dict_, _keys_, **kwargs):
"""
获取字典属性值
若发生了键值异常或类型异常,则返回设置的默认值
若没有默认值,则返回None
"""
value = kwargs['default'] if kwargs.__contains__('default') else None
try:
text = "_dict_"
for _key_ in _keys_:
text = text + "['{}']".format(_key_)
value = eval(text)
except KeyError:
pass
except TypeError:
pass
return value
2022-06-09 17:04:44 +08:00
def trans_fields_name(_dict_, names1, names2):
"""
替换字典键值名称
_dict_: 替换字典
names1: 原字典键值
names2: 新字典键值
"""
for i in range(len(names1)):
_dict_[names2[i]] = _dict_.pop(names1[i])
return _dict_
2022-06-14 17:14:01 +08:00
def get_yaml(**kwargs):
file_rel_path = kwargs['file_rel_path']
file_path = os.path.abspath(os.path.dirname(__file__))
2022-06-15 03:51:24 +08:00
index = file_path.find('Utils')
if index != -1:
abs_path_root = file_path[:index]
file_abs_path = os.path.abspath(abs_path_root + '/Modules/' + file_rel_path)
doc_yaml = open(file_abs_path, 'r', encoding="utf-8").read()
return yaml.full_load(doc_yaml)