这个项目能做什么

FinanceDatabase 是一个开源 Python 包,内置一个大型、经过整理的金融工具参考数据库。它涵盖超过 30 万个代码,包括股票(约 112,690 个,覆盖 11 个板块、80 个行业、117 个国家和 84 个交易所)、ETF(约 36,481 个,覆盖 313 个系列和 44 个类别)、基金(约 57,853 个,覆盖 1,540 个系列)、指数(约 91,181 个)、货币(约 2,556 个)、加密货币(约 3,367 个)和货币市场(约 1,367 个)。 该项目明确不是行情数据或基本面数据源。相反,它专注于产品分类和元数据:对于每个代码,它存储股票代码、名称、货币、板块、行业组、行业、交易所、市场、国家、州、城市、邮政编码、网站、市值区间、ISIN、CUSIP 和 FIGI 标识符。这使其可用于发现某个国家、板块或行业中存在哪些产品,并用于丰富其他金融数据工作流(作者将其与单独的 FinanceToolkit 包搭配使用,以获取实际价格和基本面数据)。 安装只需一条 `pip install financedatabase -U` 命令,之后通过 `import financedatabase as fd` 导入该包。每个资产类别都作为一个类公开(例如 `fd.Equities()`),实例化后可以使用 `select(...)` 进行查询,支持 `country`、`sector`、`industry`、`exchange`、`market`、`currency`、`market_cap` 和 `only_primary_listing` 等关键字过滤器。过滤器接受单个值或值列表,若为列表则返回任意匹配项。`show_options(...)` 辅助函数会列出每列可用的不同值,并可选地通过其他过滤器缩小范围,因此用户无需加载完整数据文件即可探索分类体系。 由于同一家公司可能在多个交易所上市,结果中可能包含重复公司;`only_primary_listing` 标志或显式的 `exchange`/`market` 过滤器可以缩小范围。底层数据以 CSV 文件存储,项目强调这是有意为之的设计选择:没有编程经验的贡献者可以直接编辑文件来添加、编辑或删除代码,README 中还通过 CONTRIBUTING.md 指南呼吁社区贡献。 该包在 PyPI 上分发,支持多个 Python 版本,由 Jeroen Bouma 维护。它被定位为商业参考数据提供商的免费、社区驱动替代方案,适合任何想要获得全球金融产品领域广泛、可筛选概览的人。