2 个版本
0.1.1 | 2024 年 5 月 20 日 |
---|---|
0.1.0 | 2024 年 4 月 25 日 |
#6 in #pro
每月 68 次下载
18KB
197 行
图鲨
一个 Rust 库,用于从 http://api.tushare.pro 读取数据并将其转换为 polars dataframe 对象。
示例
使用构建器模式获取 1 行 000001.SZ(平安银行)股票信息的典型方法
use tushare::*;
let tushare = Tushare::new("<your token>");
let df = tushare.querybuilder("daily")
.addparam("trade_date", "20240424") //opiontal step
.addparam("ts_code","000001.SZ") //optional step
.fields("ts_code,trade_date,open,high,low,close,pre_close,change,pct_chg,vol") //optional step
.query()?;
print!("here are the results\n");
print!("{df:?}");
注意
- 在开始之前,从 tushare.pro 网站获取一个令牌。
- 函数 tushare.querybuilder() 的参数 api_name 由 Tushare webapi 预定义,请参阅 https://tushare.pro/document/1?doc_id=130。如果您仍然不确定在这里应该使用什么字符串(就像我一样),请参阅 ProV1denCEX 的此文档中的 "api" 字段。我发现它非常有用,还有其他可选字段。
- 参数 k/v,字段在 Tushare 网站上定义得很清楚,请参阅https://tushare.pro/document/2?doc_id=25 中的示例
- 注意日期字符串。它们必须是 YYYYMMDD 格式。否则将返回空数据。
- dataframe 的日期列由 tushare 服务器定义为 String 类型。您可以使用 Polars 将整个列转换为 datetime 类型。
推荐错误处理流程
有关错误定义的详细信息,请参阅 [TushareError]。唯一可能产生错误的地方是 QueryBuilder 的 query() 方法。推荐的错误处理流程是
- 如果在 http 请求期间发生网络错误。如果您的网络不稳定,您可能需要重试。
- 如果 Tushare 服务器在响应体中明确返回非零代码,则会发生请求错误。有关更多详细信息,请参阅错误消息。可能的原因:错误的令牌
- 如果 Tushare 服务器返回的 body 与文档不同,则会发生 JsonError/DataError。通常不会发生这种情况。您可以设置日志级别为 "Info" 并检查请求和响应体的日志。
- 如果 Tushare 返回零行数据,则会发生 EmptyError。因为这使得无法推断每个列的数据类型,因此将其标记为错误。通常您可以检查是否使用了错误的日期格式。正确的格式是 "20240404"。
- 在 json -> dataframe 转换过程中发生 PolarsError。同样,这不应该发生。请检查详细信息。
依赖关系
~34–66MB
~1M SLoC