import eikon as ek import hug from bottle import route, run import json import pandas as pd import urllib.parse hug.API(__name__).http.output_format = hug.output_format.json # 填写路透的key key = "8e1de59e14fb4bbfaa40259941948345f6bbe7e6" @hug.get('/hz_server') def hello(): ek_port = ek.get_port_number() if ek_port is None: # 如果检测不到路透终端的端口,那么就返回检测失败(可能电脑重启了) return "ek false" return 'ek true' @hug.get('/edbInfo/ek') def GetEdbDataFromEk(EdbCode, StartDate, EndDate ,Frequency="daily"): EdbCode = urllib.parse.unquote(EdbCode) # print("EdbCode:", EdbCode, ";StartDate:", StartDate, ";EndDate:", EndDate, ";Frequency:", Frequency) # print("req start") if Frequency == "": Frequency = "daily" data = ek.get_timeseries(EdbCode, fields='*', start_date=StartDate, end_date=EndDate, interval=Frequency) print(data) # data.index = pd.to_datetime(data.index).strftime('%Y-%m-%d') data.index = pd.to_datetime(data.index).tz_localize("UTC") # print("result start\n", data) if data is None: print("数据查询失败:", data) return False # print("是否唯一索引:", data.index.is_unique) if data.index.is_unique is False: # print("开始去重") data = data.groupby(data.index).first() # print("结束去重") # print(data) data_json = data.to_json() result = json.loads(data_json) # # json_data = data.to_json(orient='records', date_format='epoch', date_unit='ms') # print(json_data) return result # result = { # "CLOSE": data["CLOSE"].to_dict(), # } # json_output = json.dumps(result,indent=2) # return json_output if __name__ == "__main__": ek.set_app_key(key) ek.set_timeout(120) app = __hug__.http.server() run(app=app, reloader=True, host='0.0.0.0', port=7002)