fa45d8aa5f
- health_checklist.json: 192.168.1.122→node122
- ocr_client.py: docstring IP→node122
- docs/market-data-requirements.md: IP→node122
- 所有API调用通过ProxyHandler({})绕过系统代理
Privoxy对node122:18003返回500,直连正常
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
# !/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):
|
|
kwargs.setdefault('ts_type_name', self.__http_url)
|
|
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)
|