Skip to main content

广发证券开放平台 API 客户端

Project description

广发证券 API 客户端

这是一个用于访问广发证券开放平台 API 的 Python 客户端实现。

功能特点

  • 支持自动分页获取数据
  • 可以返回 DataFrame 或原始数据格式
  • 实现了完整的 API 签名认证
  • 提供了灵活的条件构建器
  • 包含错误处理和请求重试机制

安装

pip install gf-api-client

使用示例

from gf_api_client import APIConfig, GFAPIClient, Condition

# API配置
config = APIConfig(
    key="your_key_here",
    app_id="your_app_id_here"
)

# 创建API客户端
client = GFAPIClient(config)

# 查询参数
secu_ids = ['000948.SH']
fields = ['cir_mval', 'pric_open']
endpoint = "/dsp/ds/service/news/news_idx_mkt_quot_gfzh_nc"
conditions = [
    Condition.in_list("secu_id", secu_ids),
    Condition.gt("trd_dt", '20240101')
]

# 执行查询
result = client.query(endpoint, conditions, fields, auto_paging=True, return_dataframe=True)
print(result)

条件构建器

提供了多种条件构建方法:

  • eq: 等于
  • lt: 小于
  • gt: 大于
  • le: 小于等于
  • ge: 大于等于
  • begin_with: 以...开始
  • end_with: 以...结束
  • contain: 包含
  • in_list: 在列表中
  • or_conditions: 或条件

条件构建器使用示例

Condition 类提供了多种条件构建方法,以下是每个方法的详细示例:

1. 等于条件 (eq)

# 查询股票代码等于 000001.SZ 的数据
condition = Condition.eq("secu_id", "000001.SZ")
# 结果: "eq,secu_id,'000001.SZ'"

2. 小于条件 (lt)

# 查询价格小于 10 的数据
condition = Condition.lt("price", 10)
# 结果: "lt,price,10"

3. 大于条件 (gt)

# 查询日期大于 2024-01-01 的数据
condition = Condition.gt("trd_dt", "20240101")
# 结果: "gt,trd_dt,'20240101'"

4. 小于等于条件 (le)

# 查询成交量小于等于 1000000 的数据
condition = Condition.le("volume", 1000000)
# 结果: "le,volume,1000000"

5. 大于等于条件 (ge)

# 查询市值大于等于 1000000000 的数据
condition = Condition.ge("market_value", 1000000000)
# 结果: "ge,market_value,1000000000"

6. 以...开始条件 (begin_with)

# 查询以 "沪" 开头的股票名称
condition = Condition.begin_with("stock_name", "沪")
# 结果: "beginWith,stock_name,'沪'"

7. 以...结束条件 (end_with)

# 查询以 "银行" 结尾的股票名称
condition = Condition.end_with("stock_name", "银行")
# 结果: "endWith,stock_name,'银行'"

8. 包含条件 (contain)

# 查询名称中包含 "科技" 的股票
condition = Condition.contain("stock_name", "科技")
# 结果: "contain,stock_name,'科技'"

9. 在列表中条件 (in_list)

# 查询多个股票代码的数据
secu_ids = ["000001.SZ", "000002.SZ", "000003.SZ"]
condition = Condition.in_list("secu_id", secu_ids)
# 结果: "in,secu_id,'000001.SZ;000002.SZ;000003.SZ'"

10. 或条件 (or_conditions)

# 查询沪深300或上证50的股票
condition1 = Condition.eq("index_code", "000300.SH")  # 沪深300
condition2 = Condition.eq("index_code", "000016.SH")  # 上证50
condition = Condition.or_conditions(condition1, condition2)
# 结果: "or,eq#index_code#'000300.SH',eq#index_code#'000016.SH'"

组合条件示例

# 组合多个条件:查询 2024年1月1日 之后的 沪深300 成分股的数据
conditions = [
    Condition.gt("trd_dt", "20240101"),
    Condition.eq("index_code", "000300.SH")
]

result = client.query(
    endpoint="/your/endpoint",
    conditions=conditions,
    fields=["secu_id", "stock_name", "close_price"]
)

注意事项

  • 条件值如果是字符串类型,会自动添加单引号
  • 数值类型(整数、浮点数)不会添加引号
  • 日期格式推荐使用 "YYYYMMDD" 格式
  • 多个条件可以组合使用,形成一个条件列表
  • 使用 or_conditions 时,内部的逗号会被替换为 '#' 符号

依赖要求

  • Python >= 3.6
  • requests >= 2.31.0
  • pandas >= 2.0.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gf_api_client-0.1.3.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gf_api_client-0.1.3-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file gf_api_client-0.1.3.tar.gz.

File metadata

  • Download URL: gf_api_client-0.1.3.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.14

File hashes

Hashes for gf_api_client-0.1.3.tar.gz
Algorithm Hash digest
SHA256 2e8263c372c9eaa1b0f9ceacff1862a09a97abcf21981c621ad3f7bdd67eaf41
MD5 e108d8eaad9f7aa961768525d361d9fc
BLAKE2b-256 23f2e006dba07cdc137fd0da9b21f0a2c23a9c1c6af8c4697270032bae49d7f6

See more details on using hashes here.

File details

Details for the file gf_api_client-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: gf_api_client-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.14

File hashes

Hashes for gf_api_client-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 614a63e94af6e0ee9271bc4459758db6241c6de893fbc75d3600c6e4a1a2433d
MD5 f6fa7a359907e56b9457250f30bedac2
BLAKE2b-256 8c2a337273777b76d68316954628fb491bcb7e8dcfde898cbd3168ab5340eec1

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page