如何在python中解析来自EDGAR API的10Q报告?

2024-09-21 02:49:04 发布

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

我试图使用EDGAR API检索任何给定公司的10-Q(对应于提供的CIK值)。此代码检索特斯拉最近的10-Q。有大约30个方法附加到此对象,例如键、值、项和文本内容。文本内容似乎是唯一不返回空列表的内容。然而,文本不容易解析,因为不同公司的10-Q差异很大

毫无疑问,有人会评论:我为什么设置no_of_documents=2?如果此参数设置为1,将返回错误的文档(不是10-Q)。当任何参数超过1时,将检索实际的10个Qs。我不知道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以查看其底层结构,然后使用xmltodictxml.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内容,但是,在不知道标记是什么的情况下,我有点卡住了。我怎样才能继续


Tags: ofnotest文本importapi内容错误
1条回答
网友
1楼 · 发布于 2024-09-21 02:49:04

您不需要解析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文件并非易事

相关问题 更多 >

    热门问题