You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python读取XBRL文件并提取信息?求XBRL实操经验

使用Python读取XBRL文件并提取数据实操指南

当然有XBRL实操经验,下面是用Python处理XBRL文件的具体方案:

一、常用Python库选择

  • xbrlware:轻量易用,适合快速提取标准化XBRL数据(比如美国SEC的 filings)
  • arelle:功能更全面,支持复杂XBRL实例和自定义 taxonomy,适合专业场景

二、基础实操步骤(以xbrlware为例)

  1. 先安装依赖库:
pip install xbrlware
  1. 读取XBRL文件并提取目标数据:
import xbrlware

# 加载目标XBRL文件
xbrl_instance = xbrlware.XbrlParser.parse("your_target_file.xbrl")

# 先查看文件中所有可用的概念标签,方便定位你需要的字段
all_concept_labels = [concept.label for concept in xbrl_instance.concepts]
print("所有可用概念标签:", all_concept_labels)

# 提取特定字段值(以美国GAAP准则下的营业收入、净利润为例)
revenue = xbrl_instance.concept("us-gaap:RevenueFromContractsWithCustomers").value
net_income = xbrl_instance.concept("us-gaap:NetIncomeLoss").value

print(f"提取到的营业收入: {revenue}")
print(f"提取到的净利润: {net_income}")

三、复杂场景处理(用arelle)

如果遇到自定义分类标准、非标准化XBRL结构,或者需要按维度筛选数据,推荐用arelle:

from arelle import ModelManager, Cntlr

# 初始化模型管理器
controller = Cntlr.Cntlr()
model_manager = ModelManager.initialize(controller)

# 加载XBRL实例文件
xbrl_model = model_manager.load("your_complex_file.xbrl")

# 遍历所有事实数据,查看完整内容
for fact in xbrl_model.facts:
    print(f"概念名称: {fact.concept.name}, 对应值: {fact.value}")

# 按特定概念+维度筛选(比如按业务分部提取收入数据)
target_concept = "us-gaap:RevenueFromContractsWithCustomers"
for fact in xbrl_model.factsByConcept.get(target_concept, []):
    if fact.context.segment:
        segment_info = fact.context.segment
        print(f"业务分部: {segment_info}, 对应收入: {fact.value}")

四、关键注意事项

  • XBRL文件依赖对应的分类标准(taxonomy)文件,确保文件路径正确,部分场景需要手动指定taxonomy的存放位置
  • 不同监管机构的XBRL标签体系不同(比如us-gaap、ifrs、国内企业会计准则标签),要对应使用正确的概念前缀
  • 大型XBRL文件会占用较多内存,建议用生成器遍历数据,避免一次性加载全部内容

内容的提问来源于stack exchange,提问作者Federico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 19:31:14