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

2024-10-01 13:44:32 发布

您现在位置:Python中文网/ 问答频道 /正文

不知何故,由于截止到目前为止documentation on Arelle's python API已损坏,我设法使API正常工作,并成功地加载了一个XBRL文件。在

不管怎样,我的问题是:

如何从XBRL文件中只提取语句?

下面是阿雷尔的Windows应用程序截图。在

此示例中使用的URL: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的可用密钥,它是contextRefiddecimals和{}之间的混合,这对我想要提取的内容没有帮助。由于没有文件可以进一步帮助这一点,我在这里不知所措。有人能告诉我如何实现只提取语句吗?在


Tags: 文件httpsapidatawwwxml语句sec
1条回答
网友
1楼 · 发布于 2024-10-01 13:44:32

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

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

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

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

现在,处理所有数据、过滤那些你想使用的数据变得更容易了。如果你想重现语句表,你还需要为每个事实合并链接,而不是排序,但我也没有做到这一点。在

相关问题 更多 >