Rez*_*eza 6 python json xbrl python-3.x
我希望将 XBRL 报告实例(特别是由 SEC 生成的财务报告)转换为 Python 字典或 JSON。我花时间使用 bs4(美丽的汤)开发代码,但理想情况下我想利用开源 Arelle 库。
我的理解是Arelle软件包有一个名为“saveLoadableOIM”的插件。XBRL.org 发布了一般指南;然而,它未能得到实际实施。
http://www.xbrl.org/Specification/xbrl-json/CR-2020-05-06/xbrl-json-CR-2020-05-06.html
我发现 Arelle 命令提示符使用的文档已经过时且不适用于 Python 3.x。任何人都可以提供有关如何通过 python 命令提示符操作 Arelle 的指导吗?具体来说,如何将 SEC xBRL 报告实例转换为 JSON?我想要一个能够适应标准分类法未来变化的模型,特别是 GAAP:
https://www.sec.gov/info/edgar/edgartaxonomies.shtml
如果拥有用于将 MSFT 10-K 的以下 XBRL 报告实例映射到 JSON 的示例代码,将会特别有帮助:
https://www.sec.gov/Archives/edgar/data/789019/000156459018019062/msft-20180630.xml
如果现有的 Arelle 库存在限制,我想了解这些限制是什么。
我在 Python 3 下调用 Arelle:
python3 $HOME/Arelle/arelleCmdLine.py
Run Code Online (Sandbox Code Playgroud)
这是在 Linux 上,假设我已将 Arelle 在我的主目录中签出为Arelle.
要加载插件,请使用--plugins并为其指定目录下的文件名Arelle/arelle/plugin(不带.py扩展名)。例如,--plugins=saveLoadableOIM。然后您可以添加--help,并且您应该会看到帮助消息中包含其他选项。
这对我有用:
python3 $HOME/Arelle/arelleCmdLine.py --plugins=saveLoadableOIM --saveLoadableOIM=msft.json -f https://www.sec.gov/Archives/edgar/data/789019/000156459018019062/msft-20180630.xml
Run Code Online (Sandbox Code Playgroud)
使用 Awesome jq提取数据的示例:
jq '[.facts[] | select( .dimensions.concept | test(":GrossProfit$") )] | sort_by(.dimensions.period)[-1]' msft.json
Run Code Online (Sandbox Code Playgroud)
这将获取最新的 GrossProfit 值:
python3 $HOME/Arelle/arelleCmdLine.py
Run Code Online (Sandbox Code Playgroud)
我应该指出,xBRL-JSON 规范尚未最终确定,并且此 JSON 的格式可能会随着时间的推移而略有变化。我希望 Arelle 在发布后能够更新到最终版本。