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

如何通过urllib下载CSV并转换为指定字段的Python字典

完整实现代码

直接使用Python标准库自带的csv、io模块即可实现需求,无需安装第三方依赖,代码如下:

from urllib.request import urlopen
import csv
from io import StringIO

# 目标CSV下载地址
target_url = "https://query1.finance.yahoo.com/v7/finance/download/aapl?period1=1640988000&period2=1657314000&interval=1d&events=history&includeAdjustedClose=true&volume"

result = []
with urlopen(target_url) as response:
    # 读取全部响应字节流,按utf-8解码为文本
    content = response.read().decode("utf-8")
    # 将内存中的文本包装为类文件对象,供csv模块直接读取,无需落地保存本地文件
    csv_buffer = StringIO(content)
    # 用DictReader解析,自动将CSV首行表头作为字典键名
    reader = csv.DictReader(csv_buffer)
    # 逐行读取解析结果存入列表
    for row in reader:
        result.append(row)

# 测试输出前2条数据验证效果
for item in result[:2]:
    print(item)
关键说明
  • 原代码仅调用readline()只能读取响应的第一行表头内容,替换为read()才能获取完整的CSV全量数据
  • 解析生成的字典键名和CSV内字段完全对应,固定为Date、Open、High、Low、Close、Adj Close、Volume,不需要手动做字段映射
  • DictReader读取的字段值默认是字符串类型,如果需要做数值计算,可以自行做类型转换:例如将价格类字段转为float类型,Volume字段转为int类型
  • 整个解析流程全在内存中完成,不会在本地生成任何CSV/Excel实体文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:54:31