from Utils.ErrorUtil import JustThrowError 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的index、data 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 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 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_