我希望将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的文档已经过时&不适用于Python3.x。有人能提供关于如何通过python命令提示符来操作xBRL的指导吗?具体来说,如何将SEC的xBRL报告实例转换为JSON?我想要一个能够适应标准分类法未来变化的模型,特别是GAAP:
https://www.sec.gov/info/edgar/edgartaxonomies.shtml
将以下MSFT10-K的XBRL报告实例映射到JSON中的示例代码将特别有用:
https://www.sec.gov/Archives/edgar/data/789019/000156459018019062/msft-20180630.xml
如果现有的Arelle库有限制,我想了解它们是什么。
发布于 2020-09-15 09:57:54
我在Python 3下调用Arelle时:
python3 $HOME/Arelle/arelleCmdLine.py这是在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使用可怕的jq提取数据的示例
jq '[.facts[] | select( .dimensions.concept | test(":GrossProfit$") )] | sort_by(.dimensions.period)[-1]' msft.json这将获得最近的GrossProfit值:
{
"value": "20343000000",
"decimals": -6,
"dimensions": {
"concept": "us-gaap:GrossProfit",
"entity": "cik:0000789019",
"period": "2018-04-01T00:00:00/2018-07-01T00:00:00",
"unit": "iso4217:USD"
}
}我应该注意的是,xBRL规范还没有最终完成,而且这个JSON的格式可能会随着时间的推移而略有变化。我希望Arelle在获得最终版本后会被更新到最终版本。
发布于 2021-07-16 09:21:14
我必须解决同样的问题,并开发了一个通用的xBRL到JSON转换器,它可以自动适应美国GAAP分类法中的任何变化。
API从10-K (和10-Q)文件中提取所有xBRL财务报表,并将其转换为JSON。对熊猫来说就像一种魅力。
您可以提供
0001564590-18-019062标准化财务报表包括:
像ConsolidatedStatementsofOperations或ConsolidatedStatementsOfLossIncome这样的变体会自动标准化到它们的根名,例如StatementsOfIncome。
示例
API支持GET HTTP方法。换句话说,您只需通过提供xBRL文件URL来发出简单的GET请求,API就会返回完全转换的JSON。
将xBRL文件转换为JSON
请求:
https://api.sec-api.io/xbrl-to-json?
xbrl-url=https://www.sec.gov/Archives/edgar/data/789019/000156459018019062/msft-20180630.xml&
token=YOUR_API_KEY转换JSON
注:缩短版本,以适应这里。
{
"StatementsOfIncome": {
"RevenueFromContractWithCustomerExcludingAssessedTax": [
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"value": "274515000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"value": "260174000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"value": "265595000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ProductMember"
},
"value": "220747000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ProductMember"
},
"value": "213883000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ProductMember"
},
"value": "225847000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ServiceMember"
},
"value": "53768000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ServiceMember"
},
"value": "46291000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ServiceMember"
},
"value": "39748000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:IPhoneMember"
},
"value": "137781000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:IPhoneMember"
},
"value": "142381000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:IPhoneMember"
},
"value": "164888000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:MacMember"
},
"value": "28622000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:MacMember"
},
"value": "25740000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:MacMember"
},
"value": "25198000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:IPadMember"
},
"value": "23724000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:IPadMember"
},
"value": "21280000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:IPadMember"
},
"value": "18380000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:WearablesHomeandAccessoriesMember"
},
"value": "30620000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:WearablesHomeandAccessoriesMember"
},
"value": "24482000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "aapl:WearablesHomeandAccessoriesMember"
},
"value": "17381000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:AmericasSegmentMember"
},
"value": "124556000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:AmericasSegmentMember"
},
"value": "116914000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:AmericasSegmentMember"
},
"value": "112093000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:EuropeSegmentMember"
},
"value": "68640000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:EuropeSegmentMember"
},
"value": "60288000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:EuropeSegmentMember"
},
"value": "62420000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:GreaterChinaSegmentMember"
},
"value": "40308000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:GreaterChinaSegmentMember"
},
"value": "43678000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:GreaterChinaSegmentMember"
},
"value": "51942000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:JapanSegmentMember"
},
"value": "21418000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:JapanSegmentMember"
},
"value": "21506000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:JapanSegmentMember"
},
"value": "21733000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:RestOfAsiaPacificSegmentMember"
},
"value": "19593000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:RestOfAsiaPacificSegmentMember"
},
"value": "17788000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "us-gaap:StatementBusinessSegmentsAxis",
"value": "aapl:RestOfAsiaPacificSegmentMember"
},
"value": "17407000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "country:US"
},
"value": "109197000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "country:US"
},
"value": "102266000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "country:US"
},
"value": "98061000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "country:CN"
},
"value": "40308000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "country:CN"
},
"value": "43678000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "country:CN"
},
"value": "51942000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "aapl:OtherCountriesMember"
},
"value": "125010000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "aapl:OtherCountriesMember"
},
"value": "114230000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:StatementGeographicalAxis",
"value": "aapl:OtherCountriesMember"
},
"value": "115592000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2020-06-28",
"endDate": "2020-09-26"
},
"value": "64698000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2020-03-29",
"endDate": "2020-06-27"
},
"value": "59685000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-12-29",
"endDate": "2020-03-28"
},
"value": "58313000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2019-12-28"
},
"value": "91819000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-06-30",
"endDate": "2019-09-28"
},
"value": "64040000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-03-31",
"endDate": "2019-06-29"
},
"value": "53809000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-12-30",
"endDate": "2019-03-30"
},
"value": "58015000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2018-12-29"
},
"value": "84310000000"
}
],
"CostOfGoodsAndServicesSold": [
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ProductMember"
},
"value": "151286000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ProductMember"
},
"value": "144996000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ProductMember"
},
"value": "148164000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ServiceMember"
},
"value": "18273000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ServiceMember"
},
"value": "16786000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"segment": {
"dimension": "srt:ProductOrServiceAxis",
"value": "us-gaap:ServiceMember"
},
"value": "15592000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"value": "169559000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"value": "161782000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2017-10-01",
"endDate": "2018-09-29"
},
"value": "163756000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2019-09-29",
"endDate": "2020-09-26"
},
"segment": [
{
"dimension": "us-gaap:DerivativeInstrumentRiskAxis",
"value": "us-gaap:ForeignExchangeContractMember"
},
{
"dimension": "us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis",
"value": "us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember"
},
{
"dimension": "us-gaap:StatementEquityComponentsAxis",
"value": "us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember"
}
],
"value": "-584000000"
},
{
"decimals": "-6",
"unitRef": "usd",
"period": {
"startDate": "2018-09-30",
"endDate": "2019-09-28"
},
"segment": [
{
"dimension": "us-gaap:DerivativeInstrumentRiskAxis",
"value": "us-gaap:ForeignExchangeContractMember"
},
{
"dimension": "us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeAxis",
"value": "us-gaap:ReclassificationOutOfAccumulatedOtherComprehensiveIncomeMember"
},
{
"dimension": "us-gaap:StatementEquityComponentsAxis",
"value": "us-gaap:AccumulatedGainLossNetCashFlowHedgeParentMember"
}
],
"value": "-482000000"
}
]
}
}https://stackoverflow.com/questions/63882947
复制相似问题