# !/usr/bin/env python # -*- coding: utf-8 -*- """ Pro数据接口 Created on 2017/07/01 @author: polo,Jimmy @group : https://waditu.com """ import pandas as pd import json from functools import partial import requests class DataApi: __token = '' __http_url = 'http://api.waditu.com/dataapi' # __http_url = 'http://127.0.0.1:8000/dataapi' def __init__(self, token, timeout=30): """ Parameters ---------- token: str API接口TOKEN,用于用户认证 """ self.__token = token self.__timeout = timeout def query(self, api_name, fields='', **kwargs): req_params = { 'api_name': api_name, 'token': self.__token, 'params': kwargs, 'fields': fields } res = requests.post(f"{self.__http_url}/{api_name}", json=req_params, timeout=self.__timeout) if res: result = json.loads(res.text) if result['code'] != 0: raise Exception(result['msg']) data = result['data'] columns = data['fields'] items = data['items'] return pd.DataFrame(items, columns=columns) else: return pd.DataFrame() def __getattr__(self, name): return partial(self.query, name)