如何使用通过其API从EDGAR导入的字典

问题描述 投票:1回答:1

我对python非常陌生,所以这可能是一个愚蠢的简单问题。我已经使用他们的API从EDGAR-Online导入了财务报表,并将其作为字典导入。我已经阅读了所有在词典中可以找到的内容,并了解了key:value关系。但是,数据采用以下格式:

“ {'result':{'totalrows':4,'rows':[{'rownum':1,'values':[{'field':'basicepsnetincome','value':0.77},{'字段”:“ costofrevenue”,“值”:432592000.0},{“字段”:“ dilutedepsnetincome”,“值”:0.76},{“字段”:“ ebit”,“值”:28455000.0},{“字段” :'grossprofit','value':186708000.0},{'field':'incomebeforeextraordinaryitems','value':22622000.0},{'field':'incomebeforetaxes','value':31356000.0},{'field':'所得税”,“值”:8734000.0},{“字段”:“ netincome”,“值”:22622000.0},...“

“字段”和“值”是我对词典的有限理解的键,但这意味着它们是同一键的重复。无论如何,我试图找出如何从上述数据中提取值,例如“ ebit”,其值为“ 28455000.0”。我认为应该是{'ebit':28455000.0},然后'ebit'是引用28455000.0的键。我们将非常感谢您提供有关如何从上述数据集中提取诸如ebit之类的数据点的任何帮助,这些帮助可以引用一个变量,然后在计算中使用。

使用过的requests.get

代码:

import pandas as pd 
import requests

IS = requests.get(https://datafied.api.edgar-online.com/v1/corefinancials? 
primarysymbols=MSFT&appkey={APPKEY}).json()

打印(IS)

返回上面列出的数据。

指向EDGAR API文档的可能有用的链接-https://developer.edgar-online.com/docs/v1#nav8

python dictionary finance edgar
1个回答
0
投票

从此站点返回的json具有一个奇怪的结构,但是您可以稍作努力就可以到达它:

import json
from jsonpath_ng import jsonpath, parse
IS = """[your json snippet above, converted into valid json]"""
target = json.loads(IS)

fields = []
values = []
jsonpath_expr = parse('result[*].rows[*].values')
for match in jsonpath_expr.find(target):
    for i in match.value:
        for index, element in enumerate(i.values()):
            if index % 2 == 0:
                fields.append(element)
            else:
                values.append(element)
for f, v in zip(fields,values):
    print(f,' - ', v)

输出:

basicepsnetincome  -  0.77
costofrevenue  -  432592000.0
dilutedepsnetincome  -  0.76
ebit  -  28455000.0
grossprofit  -  186708000.0
incomebeforeextraordinaryitems  -  22622000.0
incomebeforetaxes  -  31356000.0
incometaxes  -  8734000.0
netincome  -  22622000.0
© www.soinside.com 2019 - 2024. All rights reserved.