A:提供以下两种方式的范例:
方式一:pyTSL提供方法DataFrameToTSArray,可以把dataframe转成TS array风格的数据结构。
方式二:天软和python都能支持json串,在交互过程中,可以通过json串作为数据转换的桥梁,解决编码不一致及数据类型不匹配等的问题。
交互接口:FAQ:
天软pyTSL接口
使用案例:
范例01:DataFrameToTSArray把DataFrame类型数据转为TS array
Python代码:获取指定代码列表行情信息
import pandas as pd
import pyTSL
stk=pd.DataFrame({"stock":["SZ000001","SZ000002","SZ000016"],"date":["2022-04-01","2022-04-01","2022-04-01"]})
# DataFrame转为TS array
stk=pyTSL.DataFrameToTSArray(stk)
# 交互
c = pyTSL.Client("user", "password", "tsl.tinysoft.com.cn", 443) #user为天软账号,password 为账号密码
c.login()
test = '''
function get_data(data);
begin
t:=select *,
specall(array(close(),vol(),StockZf3()),array(pn_stock():["stock"],pn_date():StrToDate(["date"]))) as "info"
from data end;
t[:,array("close","vol","soockzf")]:=t[:,"info"];
deletefield(t,"info");
return t;
end;
'''
r = c.call('get_data',stk,code=test).value()
# 可直接返回DataFrame类型数据
print(pd.DataFrame(r))
返回结果:
范例02:把DataFrame格式数据转为json串
Python代码:获取指定代码列表行情信息
import pandas as pd
import pyTSL
stk=pd.DataFrame({"stock":["SZ000001","SZ000002","SZ000016"],"date":["2022-04-01","2022-04-01","2022-04-01"]})
# dataframe转json串传参
stk=stk.to_json(orient='records')
# 交互
c = pyTSL.Client("user", "password", "tsl.tinysoft.com.cn", 443) #user为天软账号,password 为账号密码
c.login()
test = '''
function get_data(stk);
begin
//json串转天软数据类型
data:=importjsonstring(stk);
t:=select *,
specall(array(close(),vol(),StockZf3()),array(pn_stock():["stock"],pn_date():StrToDate(["date"]))) as "info"
from data end;
t[:,array("close","vol","soockzf")]:=t[:,"info"];
deletefield(t,"info");
return t;
end;
'''
r = c.call('get_data',stk,code=test).value()
# 可直接返回DataFrame类型数据
print(pd.DataFrame(r))
返回结果: