#dataframe #polars #object #pro #read #api #chinese-stock-data

tushare

一个用于从 tushare 读取数据并将其转换为 polars dataframe 对象的 Rust 库。

2 个版本

0.1.1 2024 年 5 月 20 日
0.1.0 2024 年 4 月 25 日

#6 in #pro

Download history 115/week @ 2024-04-24 3/week @ 2024-05-01 137/week @ 2024-05-15 30/week @ 2024-05-22

每月 68 次下载

MIT/Apache

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:?}");

注意

  1. 在开始之前,从 tushare.pro 网站获取一个令牌。
  2. 函数 tushare.querybuilder() 的参数 api_name 由 Tushare webapi 预定义,请参阅 https://tushare.pro/document/1?doc_id=130。如果您仍然不确定在这里应该使用什么字符串(就像我一样),请参阅 ProV1denCEX 的此文档中的 "api" 字段。我发现它非常有用,还有其他可选字段。
  3. 参数 k/v,字段在 Tushare 网站上定义得很清楚,请参阅https://tushare.pro/document/2?doc_id=25 中的示例
  4. 注意日期字符串。它们必须是 YYYYMMDD 格式。否则将返回空数据。
  5. dataframe 的日期列由 tushare 服务器定义为 String 类型。您可以使用 Polars 将整个列转换为 datetime 类型。

有关错误定义的详细信息,请参阅 [TushareError]。唯一可能产生错误的地方是 QueryBuilder 的 query() 方法。推荐的错误处理流程是

  1. 如果在 http 请求期间发生网络错误。如果您的网络不稳定,您可能需要重试。
  2. 如果 Tushare 服务器在响应体中明确返回非零代码,则会发生请求错误。有关更多详细信息,请参阅错误消息。可能的原因:错误的令牌
  3. 如果 Tushare 服务器返回的 body 与文档不同,则会发生 JsonError/DataError。通常不会发生这种情况。您可以设置日志级别为 "Info" 并检查请求和响应体的日志。
  4. 如果 Tushare 返回零行数据,则会发生 EmptyError。因为这使得无法推断每个列的数据类型,因此将其标记为错误。通常您可以检查是否使用了错误的日期格式。正确的格式是 "20240404"。
  5. 在 json -> dataframe 转换过程中发生 PolarsError。同样,这不应该发生。请检查详细信息。

依赖关系

~34–66MB
~1M SLoC