首页 > 编程问答 >雅虎财经 API 未检索数据

雅虎财经 API 未检索数据

时间:2024-07-30 15:30:38浏览次数:9  
标签:python streamlit yahoo-finance yahoo-api

`import streamlit as st
from datetime import date
import yfinance as yf
from prophet import Prophet
from prophet.plot import plot_plotly
from plotly import graph_objs as go

START = "2014-01-01"
TODAY = date.today().strftime("%Y-%m-%d")

st.title("Stock Prediction App")

stock = (
    "AAPL", "GOOG", "MSFT", "GME", "AMZN", "TSLA", "FB", "NFLX", "NVDA", "AMD",
    "INTC", "IBM", "ORCL", "SAP", "CRM", "ADBE", "HPQ", "TWTR", "SNAP", "SQ",
    "PYPL", "EBAY", "BABA", "JD", "V", "MA", "AXP", "DIS", "PEP", "KO", "MCD",
    "WMT", "TGT", "COST", "PFE", "MRK", "JNJ", "GSK", "NKE", "ADDYY", "TM", "F",
    "GM", "FCAU", "BA", "GE", "CAT", "DE", "MMM", "UTX", "LMT", "RTX", "NOC",
        "GD", "BAC", "C", "WFC", "JPM", "GS", "MS", "AIG", "ALL", "PGR", "TRV",
    "CVX", "XOM", "BP", "RDS.A", "TOT", "COP", "PSX", "SLB", "HAL", "EOG",
    "DVN", "APA", "BKR", "PXD", "CTXS", "SYMC", "XRX", "GLW", "APH", "ROP",
    "TYC", "HON", "DHR", "TXT", "PHG", "SI", "ERIC", "NOK", "VOD", "T", "VZ",
    "TMUS", "S", "FTR", "LRCX", "KLAC", "ASML", "TXN", "QCOM", "ZM", "UBER",
    "LYFT", "SPOT", "BIIB", "CELG", "REGN", "VRTX", "ALXN", "ILMN", "GILD",
    "AMGN", "SBUX", "BBY", "LOW", "HD", "NEM", "NEE", "DUK", "SO", "PPL", "AEE",
    "EXC", "PCG", "SRE", "DTE", "PEG", "ETR", "WEC", "ES", "XEL", "FE", "D",
    "CNP", "CMS", "AEP", "AWK", "CERN", "CPRT", "DLTR", "EA", "EBIX", "ECL",
    "EDU", "FAST", "FISV", "FLIR", "GPN", "IDXX", "IART", "ISRG", "IT", "JKHY",
    "JBLU", "JBHT", "JCI", "KLAC", "LH", "LRCX", "MCHP", "MDLZ", "MELI", "MNST",
    "MPWR", "MSFT", "MTCH", "MU", "MXIM", "NCLH", "NFLX", "NLOK", "NTRS", "NVR",
    "ODFL", "ORLY", "PAYX", "PCAR", "PCTY", "PEP", "PTC", "PXD", "PYPL", "QCOM",
    "QRVO", "REGN", "ROST", "SBAC", "SBUX", "SIVB", "SKYW", "SNPS", "SPLK",
    "SRCL", "SSNC", "STX", "SWKS", "SYNH", "TCOM", "TSCO", "TSLA", "TTWO",
    "TXN", "UAL", "ULTA", "VRSK", "VRSN", "VRTX", "WBA", "WDAY", "WDC", "WLTW",
    "WM", "WYNN", "XEL", "XLNX", "XRAY", "ZION", "ZM", "ATVI", "ADP", "CSCO",
    "CSX", "CTAS", "CTSH", "CTXS", "EXPD", "FAST", "FISV", "HAS", "HSIC", "INCY",
    "INTU", "ISRG", "JBHT", "LRCX", "MAR", "MCHP", "MDLZ", "MELI", "MNST", "MRNA",
    "MRVL", "MSFT", "MTCH", "MU", "MXIM", "NTAP", "NVDA", "ODFL", "OKTA", "ORLY",
    "PANW", "PAYX", "PCAR", "PDD", "PEP", "PTON", "PYPL", "QCOM", "REGN", "ROST",
    "SBUX", "SGEN", "SIRI", "SNPS", "SPLK", "SWKS", "TCOM", "TSLA", "TTWO",
    "TXN", "UAL", "ULTA", "VRSK", "VRSN", "VRTX", "WBA", "WDAY", "XEL", "XLNX",
    "ZM"
)

selected_stock = st.selectbox("Select dataset for prediction", stock)

n_years = st.slider("Years of Prediction", 1, 4)
period = n_years * 365


@st.cache_data
def load_data(ticker):
    data = yf.download(ticker, START, TODAY)
    data.reset_index(inplace=True)
    return data


data_load_state = st.text("Load Data...")
data = load_data(selected_stock)
data_load_state.text("Loading Data... done!")

st.subheader('Raw Data')
st.write(data.tail())`

我正在创建一个基本网站,根据以前的数据预测股票走势,但是,当尝试从雅虎财经 API 检索数据时,它返回一个空值,我该怎么办?当我实际运行该网站时,选择栏工作正常,但由于数据值为空,下表为空。


在使用 Streamlit 时遇到雅虎财经 API 未检索数据的问题,原因可能是:

  1. 雅虎财经 API 更改: 雅虎财经经常更改其 API,因此使用的库版本可能已过时。
  2. 缓存问题: Streamlit 的 @st.cache_data 装饰器可能会缓存过时的数据。
  3. 速率限制: 雅虎财经 API 可能对请求频率有限制,如果发送过多的请求,的 IP 地址可能会被暂时封禁。
  4. 代码错误: 的代码中可能存在导致 API 请求失败的错误。

以下是可以尝试的几种解决方案:

1. 更新库:

  • 确保使用的是 yfinance 库的最新版本。可以使用以下命令更新:

    bash pip install --upgrade yfinance

2. 清除缓存:

  • 尝试从 Streamlit 应用程序中清除缓存。可以通过单击 Streamlit 界面右上角的汉堡菜单,然后选择“Clear cache”来完成此操作。
  • 尝试删除或重命名 load_data 函数上的 @st.cache_data 装饰器,以查看它是否是问题的原因。

3. 处理速率限制:

  • 在的代码中添加错误处理,以捕获任何 yfinance 引发的异常。可以使用 try-except 块来实现此目的。例如:

    python @st.cache_data def load_data(ticker): try: data = yf.download(ticker, START, TODAY) data.reset_index(inplace=True) return data except Exception as e: st.error(f"Error fetching data: {e}") return None

  • 如果需要频繁地获取数据,请考虑使用 API 密钥或在请求之间添加延迟。

4. 检查代码错误:

  • 仔细检查的代码,确保 API 端点、股票代码和日期格式正确无误。
  • 尝试在 Streamlit 应用程序之外运行 yf.download() 函数,以确保它可以检索数据。

其他建议:

  • 考虑使用其他股票数据 API,例如 Alpha Vantage 或 Tiingo。
  • 查看 yfinance GitHub 存储库,了解其他用户是否报告了类似的问题。

通过尝试这些解决方案,应该能够解决雅虎财经 API 未检索数据的问题。

标签:python,streamlit,yahoo-finance,yahoo-api
From: 78810322

相关文章

  • Python sqlite3 删除数据
    要从SQLite表中删除记录,你需要使用DELETEFROM语句。要删除特定的记录,你需要同时使用WHERE子句。要更新特定的记录,你需要同时使用WHERE子句。语法以下是SQLite中DELETE查询的语法- DELETEFROMtable_name[WHEREClause]PythonCopy例子假设我们使用以下查询创建了......
  • Python 环境配置(一)Python、Anaconda、Pycharm的安装
    Python环境配置(一)Python、Anaconda、Pycharm的安装本人之前已安装一次,此次为卸载之后的重新安装。。。一、Python1、下载下载官网:下载链接:DownloadPython|Python.org勾选添加到路径(环境变量)next如图所示之后点close关闭2、验证win+Rcmd:python退出ex......
  • Pycharm 设置 yaml 格式接口测试用例模板 (python+pytest+yaml)
    前言初次编写的伙伴们可能对yaml格式不太熟悉,自己写yaml用例的时候,总是格式对不齐啊记不住设定好的关键字啊等等等琐事是我们可以在pycharm上设置用例模块,通过快捷方式调用出对应的模块,达到高效写用例的目的。 pycharm操作集:1、File-Settings(快捷键Ctrl+Alt+S) 2、Live......
  • Python - Redirecting output of print to a file
    Theprintfunctioncanalsobeusedtowritetoafile.Theoutputofprint,thatisbydefault,senttothescreencanberedirectedtoanopenfile.Forthis,youhavetosupplythefileobjectasanargumentforthenamedparameterfile.Hereisanexa......
  • Python:添加到相对于当前运行脚本的 sys.path 的最佳方法
    我有一个充满脚本的目录(比如说project/bin)。我还有一个位于project/lib的库,并希望脚本自动加载它。这是我通常在每个脚本的顶部使用的:#!/usr/bin/pythonfromos.pathimportdirname,realpath,sep,pardirimportsyssys.path.append(dirname(realpath(_......
  • python身份证号码+姓名一致性核验、身份证号码真伪查询API集成
    身份证号码+姓名核验的方式,顾名思义是身份证二要素核验,一般情况下,身份证真伪查询需要上公安户籍系统查询,但此种方式仅适合个人查询,企业要想随时随地实现身份证实名认证的功能,便需要集成身份证实名认证接口功能。翔云人工智能开放平台提供身份证号实名认证接口,实时联网,上传身份证......
  • 如何将数字分配给返回的 python 数据列表,我可以调用这些数据来打印
    这里完全是菜鸟。我在网上搜索过,找不到我想要做的事情的答案。我的代码在这里:importbs4asbsimporturllib.requestsauce=urllib.request.urlopen('https://www.amazon.com/gp/rss/bestsellers/kitchen/289851/ref=zg_bs_289851_rsslink').read()soup=bs.Beautiful......
  • python API增值税发票四要素核验、数电票查验、医疗票查验
    长期以来,对发票进行高效的管理一直困扰着众多企业财务,手动录入效率慢、出错率高、纸质发票易丢失等。今天,翔云为广大企业提供了发票查验接口与财政票据查验接口服务,可针对增值税发票管理系统开具发票,医疗票据、非税收入等财政类票据进行真伪查验。翔云发票识别接口,使得企业财务无......
  • 如何使用 python 在 influxdb 中创建组织和存储桶
    如何使用python在influxdb中创建组织和存储桶?我有一个python脚本,用于在influxdb中创建组织和存储桶,但它无法工作并返回未经授权的响应任何人可以使用influxdbapi帮助我解决这个问题吗?HTTPresponsebody:{"code":"unauthorized","message":"write:org......
  • Python - File opening modes and buffering
    'r'-readmode(default)'w'-writemode'a'-appendmode'x'-exclusivecreationWeknowthatthemode'r'opensanexistingfileforreadingonly;thefileshouldalreadyexist.Ifyouopenafilein......