FAQ > 金融建模 > 第三方交互 > TS-OPI

Q:python中通过TS-OPI方式调用天软函数    

  • A:本页中主要展示开发者用户在python中通过OPI接口调用天软函数的具体实现,即使用URI:/Service/Call/funcName。
    下面示例中,主要展示调用天软范例函数(公用函数):GetTimeSeriesSample(BegT,EndT,StockId,cycle)
    功能:获取指定个股在时间区间内每日价格,及30日均价

    在python中执行下面这段代码:
    from datetime import datetime,timedelta
    import requests
    from requests.auth import HTTPBasicAuth

    # 封装:tsl与python的日期时间转换,TSL TDateTime 的基点为1899年12月30日
    TSL_EPOCH = datetime(1899, 12, 30)
    def tslDateToPy(dvalue: float) -> datetime:
     return TSL_EPOCH + timedelta(days=dvalue)
    def pyDateTotsl(dt: datetime) -> float:
     return (dt - TSL_EPOCH) / timedelta(days=1)

    #requests.post方式有参数函数
    url='https://opi.tinysoft.com.cn/Service/Call/GetTimeSeriesSample'; #平台用户调用函数
    headers={'Connection': 'keep-alive',
         'Content-Type': 'application/json',
         'TS-EVENTNAME': 'auto',
         'JSON-Encode': 'gbk'}
    #命名参数方式
    #postdata={"BegT":pyDateTotsl(datetime(2026,3,25)),"EndT":pyDateTotsl(datetime(2026,4,10)),"StockId":"SZ000002","cycle":"日线"};
    #顺序传参方式
    postdata=[pyDateTotsl(datetime(2026,3,25)),pyDateTotsl(datetime(2026,4,10)),"SZ000002","日线"]

    session = requests.Session()
    #tsuser为天软账号名,tspass为密码,用户需要指定
    session.auth = HTTPBasicAuth('tsuser', 'tspass')# 使用HTTPBasicAuth进行基本认证
    #session.verify = False #若证书提示报错时,可以通过这句设置禁用证书校验
    session.headers.update(headers)
    response = session.post(url,json=postdata)
    if response.status_code==200:
     print("请求成功")
     print(response.text)
    else:
     print(f"请求失败,状态码: {response.status_code}")
     print(f"响应内容: {response.text}")
    response.close()


    执行结果:


    注:若执行报证书相关提示,则可参考
    FAQ:Q:python中通过TS-OPI方式调用天软函数