我正在尝试构建自己的函数,以通过财务API传递股票报价,并在JSON响应中收集关键财务比率。
#import packages
import pandas as pd
import requests
import json
def financialratios(quote):
Chrislink = 'https://financialmodelingprep.com/api/v3/financial-ratios/'+str(quote)
print(Chrislink)
print(str("Link is a ")+str(type(Chrislink)))
fr = requests.get(Chrislink)
fr = fr.json()
当我调用它时会返回“无”结果。
x = financialratios('AAPL')
print(x)
https://financialmodelingprep.com/api/v3/financial-ratios/AAPL
Link is a <class 'str'>
None
但是,当我将函数的所有这项工作 OUTSIDE 都接受时,它将返回预期的结果...
quote = 'AAPL'
Chrislink = 'https://financialmodelingprep.com/api/v3/financial-ratios/'+str(quote)
print(Chrislink)
print(str("Link is a ")+str(type(Chrislink)))
fr = requests.get(Chrislink)
fr = fr.json()
fr
{'symbol': 'AAPL',
'ratios': [{'date': '2019-09-28',
'investmentValuationRatios': {'priceBookValueRatio': '10.666314697418441',
'priceToBookRatio': '10.666314697418441',
'priceToSalesRatio': '3.709723048190826',
'priceEarningsRatio': '17.46730643441436',
'receivablesTurnover': '11.34842536857716',
'priceToFreeCashFlowsRatio': '16.38775951405868',
'priceToOperatingCashFlowsRatio': '13.909202696891526',
'priceCashFlowRatio': '13.909202696891526',
'priceEarningsToGrowthRatio': '1.3549431647588217',
'priceSalesRatio': '3.709723048190826',
'dividendYield': '0.014628458229615355',
'enterpriseValueMultiple': '13.31637596061561',
'priceFairValue': '10.666314697418441'},
...
我确定我一定在这里犯了某种愚蠢的错误,但是,我不确定那个错误是什么。关于为什么这会导致功能失败但在该功能之外成功的任何见解?
答案 0 :(得分:1)
您必须像这样从函数中返回fr:
import pandas as pd
import requests
import json
def financialratios(quote):
Chrislink = 'https://financialmodelingprep.com/api/v3/financial-ratios/'+str(quote)
print(Chrislink)
print(str("Link is a ")+str(type(Chrislink)))
fr = requests.get(Chrislink)
fr = fr.json()
return fr
希望这会有所帮助!