1

我正在尝试使用 EDGAR API 检索任何给定公司的 10-Q(对应于提供的 CIK 值。)此代码检索特斯拉的最新 10-Q。该对象附加了大约 30 个方法,例如键、值、项目和 text_content。Text_content 似乎是唯一一个不返回空列表的[]。但是,文本不容易解析,因为 10-Q 因一家公司而异。

毫无疑问,有人会评论:我为什么要设置no_of_documents=2?如果此参数设置为 1,将返回错误的文档(不是 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 以查看其底层结构,然后使用xmltodictor解析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 内容,但是,在不知道标签是什么的情况下,我有点卡住了。我该如何进行?

4

1 回答 1

1

你不需要解析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文件不是一件容易的事......

于 2020-08-03T21:43:04.663 回答