gpt4 book ai didi

python - 使用 python 和正则表达式解析 xbrl 以查找 TextBlocks

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:03 25 4
gpt4 key购买 nike

我正在使用 python 和 ElementTree 访问从 EDGAR 抓取的 .xml 文件列表。我已经阅读并重新阅读了 ElementTree/python.org页面,但我仍然不了解如何深入了解数据。我应该如何使用 ElementTree 来获取类似于所列 .xml 的第一个 TextBlock 的内容

import import re
from urllib2 import urlopen
import requests
import xml.etree.ElementTree as ET
full_xml =['https://www.sec.gov/Archives/edgar/data/1593001/000121390017010242/ngtf-20170630.xml', 'https://www.sec.gov/Archives/edgar/data/13573/000143774917016692/bwla-20170702.xml', 'https://www.sec.gov/Archives/edgar/data/1652871/000165287117000030/none-20170630.xml', 'https://www.sec.gov/Archives/edgar/data/1434674/000154972717000042/chnd-20170630_cal.xml', 'https://www.sec.gov/Archives/edgar/data/1083922/000130841117000030/arao-20170331.xml']
for xml in full_xml:
file = urllib2.urlopen(xml)
tree = ET.parse(file)
root = tree.getroot()
print root

最佳答案

查找文本 block 的信息不仅在 XBRL 实例(主 .xml 文件)中。它也在属于 DTS 的分类架构文件中。

在 XML 级别查找文本 block 事实需要:

  • 通过解析来自实例的模式和链接库的所有链接来构建 DTS

  • 构建从找到的所有模式中收集的概念及其元数据的列表

  • 按类型过滤这些概念(您想找到类型为 nonnum:textBlockItemType 的概念 -- 命名空间敏感的比较)

  • 在 XBRL 实例中查找与通过上述过滤器的概念相关联的事实

  • 可能处理维度以仅包含无维度的事实

这在理论上是可行的,但在 XML 级别上这样做会非常复杂且耗费资源,并且容易出错——更何况在 XML 技术堆栈之外的命令式语言中使用库 (如 XQuery)。事实上,这相当于重新实现(部分)XBRL 处理器,这超出了正则表达式的范围。

一般来说,我强烈建议使用现有的 XBRL 处理器——那里有开源处理器,有些甚至可能与 python 兼容——上面的逻辑已经实现,使用 API(例如、REST 或 python)来浏览概念、选择文本 block 并使用适当的数据模型查找事实。

XBRL 技术堆栈仍处于首次亮相阶段,许多处理器仍未在适当的抽象级别处理维度,但如果它继续流行,产品数量应该会增加,它们应该会变得更加完整和稳定。

关于python - 使用 python 和正则表达式解析 xbrl 以查找 TextBlocks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46558844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com