【问题标题】:How to extract financial statements only from XBRL files using Arelle's Python API?如何使用 Arelle 的 Python API 仅从 XBRL 文件中提取财务报表?
【发布时间】:2016-08-16 06:49:24
【问题描述】:

不知何故,在documentation on Arelle's python API 已损坏的情况下,我设法使 API 工作并成功加载了 XBRL 文件。

无论如何,我的问题是:

如何仅从 XBRL 文件中提取 STATEMENTS?

以下是来自 Arelle 的 Windows 应用程序的屏幕截图。

本例中使用的网址:https://www.sec.gov/Archives/edgar/data/101984/000010198416000062/ueic-20151231.xml

我尝试使用 API 进行试验,这是我的代码

from arelle import Cntlr

xbrl = Cntlr.Cntlr().modelManager.load('https://www.sec.gov/Archives/edgar/data/101984/000010198416000062/ueic-20151231.xml')

for fact in xbrl.facts:
   print(fact)

但是在执行了这个 sn-p 之后,我被这些轰炸了:

我尝试获取每个modelFact 可用的密钥,它是contextRefiddecimalsunitRef 之间的混合,这对我想要提取的内容没有帮助。由于没有文件可以进一步帮助解决这个问题,我在这里不知所措。有人能告诉我如何实现只提取语句吗?

【问题讨论】:

    标签: python xbrl arelle


    【解决方案1】:

    我正在做类似的事情,到目前为止已经取得了一些进展,我可以分享:

    通过 arelle 的 python 代码文件,您可以检测到您可以为不同的类(例如 ModelFact、ModelContext、ModelUnit 等)访问哪些属性。

    要提取单个数据,例如,您可以将它们放入 panda 数据框中,如下所示:

    factData=pd.DataFrame(data=[(fact.concept.qname,
                               fact.value,
                               fact.isNumeric,
                               fact.contextID,
                               fact.context.isStartEndPeriod,
                               fact.context.isInstantPeriod,
                               fact.context.isForeverPeriod,
                               fact.context.startDatetime,
                               fact.context.endDatetime,
                               fact.unitID) for fact in xbrl.facts])
    

    现在可以更轻松地处理所有数据,过滤您想要使用的数据等。如果您想重现报表表,您还需要合并每个事实的链接,而不是排序和排序,但我也没有走到这一步。

    【讨论】:

    • 你用这个方法有没有更进一步?
    猜你喜欢
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多