如何使用Arelle的Python API仅从XBRL文件中提取财务报表?

时间:2016-04-22 14:59:33

标签: python xbrl

不知何故,截至日期已损坏documentation on Arelle's python API,我设法使API工作并成功加载XBRL文件。

无论如何,我的问题是:

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

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

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

Arelle GUI

我尝试过使用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)

但在执行此片段之后,我被这些轰炸了:

PyCharm CLI

我尝试按modelFact获取密钥,它是contextRefiddecimalsunitRef之间的混合,这对我来说无益想要提取。没有文件可以帮助我们进一步解决这个问题,我在这里不知所措。有人可以启发我如何实现只提取语句吗?

1 个答案:

答案 0 :(得分:1)

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

通过arelle的python代码文件,您可以检测出可以访问哪些属性,例如ModelFact,ModelContext,ModelUnit等。

要提取单个数据,您可以将它们放在熊猫数据框中,如下所示:

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])

现在可以更轻松地处理所有数据,过滤那些您想要使用的数据等。如果您想要重现语句表,您还需要为每个事实添加链接,而不是订购和排序,但我也没有这么远。