用python读取xbrl

2024-10-01 11:39:55 发布

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

我正在尝试在xbrl文件中查找特定的标记。我最初尝试使用pythonxbrl包,但这并不是我想要的,所以我基于包中可用的代码。在

这是我感兴趣的xbrl部分

<us-gaap:LiabilitiesCurrent contextRef="eol_PE2035----1510-Q0008_STD_0_20150627_0" unitRef="iso4217_USD" decimals="-6" id="id_5025426_6FEF05CB-B19C-4D84-AAF1-79B431731049_1_24">65285000000</us-gaap:LiabilitiesCurrent>
<us-gaap:Liabilities contextRef="eol_PE2035----1510-Q0008_STD_0_20150627_0" unitRef="iso4217_USD" decimals="-6" id="id_5025426_6FEF05CB-B19C-4D84-AAF1-79B431731049_1_28">147474000000</us-gaap:Liabilities>

这是密码

python-xbrl包基于beautifulsoup4和其他几个包。在

^{pr2}$

我得到us-gaap:LiabilitiesCurrent的值,但我想要us-gaap:Liabilities的值。 现在只要找到一个匹配的,就存储它。但在很多情况下,由于xbrl中的标记格式,它的匹配错误。我相信我需要更改re.compile()部分以使其正常工作。在


Tags: 标记idususdstdxbrlgaapiso4217
2条回答

尝试在结尾处使用$美元符号,以指示与美元符号后面的任何其他符号不匹配:

liabilities = xbrl.find_all(name=re.compile("(us-gaap:Liabilities$)",
                          re.IGNORECASE | re.MULTILINE))

对于使用这种方法解析XBRL(或者实际上是任何包含名称空间的XML),我会非常谨慎。”美国-gaap:负债“是一个QName,由前缀(“us gaap”)和本地名称(“负债”)组成。前缀只是完整名称空间URI(如“http://fasb.org/us-gaap/2015-01-31”)的简写,它由名称空间声明定义,通常位于文档顶部。如果您查看文档顶部,您会看到类似以下内容:

在美国公认会计准则="http://fasb.org/us-gaap/2015-01-31““

这意味着在本文的范围内,“usgaap”被认为是完整的名称空间URI。在

XML创建者可以自由使用他们想要的任何前缀,因此不能保证元素实际上被称为“us”-gaap:负债“在您遇到的所有文档中。在

beauthoulsoup4对名称空间的支持非常有限,所以我不推荐它作为构建XBRL处理器的起点。也许值得一看Arelle项目,它是一个完整的XBRL处理器,它将使其他任务更容易完成,例如查找分类法中与事实相关的标签和其他信息。在

相关问题 更多 >