如何在 python 中解析来自 EDGAR API 的 10-Q 报告?
How to parse 10-Q reports from EDGAR API in python?
我正在尝试使用 EDGAR API 检索任何给定公司的 10-Q(对应于提供的 CIK 值)。此代码检索特斯拉的最新 10-Q。这个对象附加了大约 30 个方法,例如键、值、项和 text_content。 Text_content 似乎是唯一一个不 return 空列表 []
的列表。但是,文本不容易解析,因为 10-Q 因公司而异。
无疑会有人评论:我为什么要设置no_of_documents=2
?如果此参数设置为 1,则将 returned 错误文档(不是 10-Q)。对于任何超过 1 的参数,将检索实际的 10-Q。我不知道为什么 API 会这样。
from edgar import Company
def func(cik):
company = Company("",cik)
tree = company.get_all_filings(filing_type="10-Q")
documents = Company.get_documents(tree,no_of_documents=2)
return documents[0]
test = func('0001318605')
我想做的是 (A) 打印出原始 XML 以查看其底层结构,然后使用 xmltodict
或 xml.etree.ElementTree
进行解析。但是,我收到以下错误。
使用 ET
import xml.etree.ElementTree as ET
ET.parse(test)
>>>
TypeError: expected str, bytes or os.PathLike object, not HtmlElement
使用 XMLtoDict
import xmltodict
xmltodict.parse(test)
TypeError: a bytes-like object is required, not 'HtmlElement'
同样,我的目标是搜索导航 XML 内容,但是,由于不知道标签是什么,我有点卡住了。我该如何继续?
您不需要解析test
;您可以直接在其上使用 xpath 方法。例如:
test.xpath('//entity/segment/explicitmember/text()')
输出:
'tsla:OperatingLeaseVehiclesMember',
'tsla:OperatingLeaseVehiclesMember',
'tsla:SolarEnergySystemsMember',
'tsla:SolarEnergySystemsMember',
'tsla:AutomotiveSegmentMember',
'tsla:AutomotiveSegmentMember',
等
和
test.xpath('//context/period/instant/text()')
输出:
['2020-07-20',
'2020-06-30',
'2019-12-31',
'2020-06-30',
'2019-12-31',
等等。
祝你好运;解析 xbrl 文件不是一件容易的事...
我正在尝试使用 EDGAR API 检索任何给定公司的 10-Q(对应于提供的 CIK 值)。此代码检索特斯拉的最新 10-Q。这个对象附加了大约 30 个方法,例如键、值、项和 text_content。 Text_content 似乎是唯一一个不 return 空列表 []
的列表。但是,文本不容易解析,因为 10-Q 因公司而异。
无疑会有人评论:我为什么要设置no_of_documents=2
?如果此参数设置为 1,则将 returned 错误文档(不是 10-Q)。对于任何超过 1 的参数,将检索实际的 10-Q。我不知道为什么 API 会这样。
from edgar import Company
def func(cik):
company = Company("",cik)
tree = company.get_all_filings(filing_type="10-Q")
documents = Company.get_documents(tree,no_of_documents=2)
return documents[0]
test = func('0001318605')
我想做的是 (A) 打印出原始 XML 以查看其底层结构,然后使用 xmltodict
或 xml.etree.ElementTree
进行解析。但是,我收到以下错误。
使用 ET
import xml.etree.ElementTree as ET
ET.parse(test)
>>>
TypeError: expected str, bytes or os.PathLike object, not HtmlElement
使用 XMLtoDict
import xmltodict
xmltodict.parse(test)
TypeError: a bytes-like object is required, not 'HtmlElement'
同样,我的目标是搜索导航 XML 内容,但是,由于不知道标签是什么,我有点卡住了。我该如何继续?
您不需要解析test
;您可以直接在其上使用 xpath 方法。例如:
test.xpath('//entity/segment/explicitmember/text()')
输出:
'tsla:OperatingLeaseVehiclesMember',
'tsla:OperatingLeaseVehiclesMember',
'tsla:SolarEnergySystemsMember',
'tsla:SolarEnergySystemsMember',
'tsla:AutomotiveSegmentMember',
'tsla:AutomotiveSegmentMember',
等 和
test.xpath('//context/period/instant/text()')
输出:
['2020-07-20',
'2020-06-30',
'2019-12-31',
'2020-06-30',
'2019-12-31',
等等。
祝你好运;解析 xbrl 文件不是一件容易的事...