import os import json import functools from flask import request from setting import API_SECRET, APP_NAME def file_path(param): """ 返回文件真实路径 避免因为文件路径问题带来的麻烦 Parameters: param: 文件相对路径 Returns: path: 文件真实路径 """ abs_path = os.path.abspath(os.path.dirname(__file__)) rel_path = abs_path[:abs_path.find(APP_NAME) + len(APP_NAME)] path = os.path.abspath(rel_path + param) return path def read_json_file(param): """ 读取json文件 Parameters: param: json文件真实路径 Returns: result: json内容 """ with open(file_path(param), "r", encoding='utf-8') as f: result = json.load(f) return result def verify_token(func): """ 校验token """ @functools.wraps(func) def internal(*args, **kwargs): try: token = request.headers.get('token') if token != API_SECRET: return {"info": "接口密钥错误"}, 401 except Exception: return {"info": "请求异常"}, 401 return func(*args, **kwargs) return internal 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