You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ThreadPoolExecutor获取的Yahoo财经数据导出至Excel?

将Yahoo Finance股票数据导出到Excel的解决方案

修改数据获取逻辑,收集结构化结果

原代码仅打印数据,我们需要让函数返回结构化数据,以便后续导出。同时添加异常处理,避免单个股票数据获取失败中断整体任务:

import yfinance as yf
from concurrent.futures import ThreadPoolExecutor
import pandas as pd

def get_stats(ticker):
    try:
        info = yf.Tickers(ticker).tickers[ticker].info
        # 返回包含目标字段的字典,方便后续转换
        return {
            '股票代码': ticker,
            '当前价格': info.get('currentPrice'),
            '市值': info.get('marketCap')
        }
    except Exception as e:
        print(f"获取{ticker}数据失败: {str(e)}")
        return {
            '股票代码': ticker,
            '当前价格': None,
            '市值': None
        }

ticker_list = ['AAPL', 'ORCL', 'PREM.L', 'UKOG.L', 'KOD.L', 'TOM.L', 'VELA.L', 'MSFT', 'AMZN', 'GOOG']

# 收集所有线程返回的结果
with ThreadPoolExecutor() as executor:
    results = list(executor.map(get_stats, ticker_list))

导出结果到Excel

使用pandas可以快速将结构化数据转换为Excel文件,需要先安装依赖:

pip install pandas openpyxl

添加导出代码:

# 将结果转换为DataFrame格式
df = pd.DataFrame(results)

# 导出到Excel文件,关闭索引列让表格更整洁
df.to_excel('股票数据.xlsx', index=False, engine='openpyxl')

print("数据已成功导出到股票数据.xlsx")

完整可运行代码

import yfinance as yf
from concurrent.futures import ThreadPoolExecutor
import pandas as pd

def get_stats(ticker):
    try:
        info = yf.Tickers(ticker).tickers[ticker].info
        return {
            '股票代码': ticker,
            '当前价格': info.get('currentPrice'),
            '市值': info.get('marketCap')
        }
    except Exception as e:
        print(f"获取{ticker}数据失败: {str(e)}")
        return {
            '股票代码': ticker,
            '当前价格': None,
            '市值': None
        }

ticker_list = ['AAPL', 'ORCL', 'PREM.L', 'UKOG.L', 'KOD.L', 'TOM.L', 'VELA.L', 'MSFT', 'AMZN', 'GOOG']

with ThreadPoolExecutor() as executor:
    results = list(executor.map(get_stats, ticker_list))

df = pd.DataFrame(results)
df.to_excel('股票数据.xlsx', index=False, engine='openpyxl')

print("数据导出完成")

关键说明

  • 用info.get()替代直接索引,避免部分股票缺少目标字段时抛出KeyError
  • 异常捕获确保单个股票数据获取失败不会影响其他任务执行
  • index=False参数避免导出不必要的索引列,让Excel表格更简洁

内容的提问来源于stack exchange,提问作者user3444610

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 22:25:21