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

如何使用Python将URL数据转CSV,解决导出为文本及多URL批量下载问题

现有代码问题说明

你当前输出为普通文本文件的核心原因是导出CSV时文件名未加.csv后缀,操作系统无法识别格式类型。另外代码存在冗余可优化:

  • 不需要额外调用csv库做内容解析,pandas可直接读取下载的CSV文本内容
  • 默认导出会写入冗余索引列,可通过参数关闭

修正后的单文件下载代码如下:

import pandas as pd
import requests
from datetime import datetime

CSV_URL = 'https://dsv-ops-toolkit.ihsmvals.com/ftp?config=fenics-bgc&file=IRSDATA_20211129_1700_Intra.csv&directory=%2FIRS%2FIntraday%2FDaily'

with requests.Session() as s:
    download = s.get(CSV_URL)
    decoded_content = download.content.decode('utf-8')
    # 直接用pandas读CSV内容,减少冗余步骤
    df = pd.read_csv(pd.compat.StringIO(decoded_content))
    date = datetime.now().strftime('%y%m%d')
    # 文件名加.csv后缀,关闭索引导出
    df.to_csv(f'RFR_{date}.csv', index=False)
批量下载多个CSV实现方案

可以直接在脚本中配置URL列表实现批量下载,为了避免文件名重复覆盖,建议给每个URL配置对应的自定义文件名前缀,示例代码如下:

import pandas as pd
import requests
from datetime import datetime

# 配置多个下载链接,格式为 (自定义文件名前缀, 下载URL)
CSV_DOWNLOAD_TASKS = [
    ('RFR_IRS_Intra', 'https://dsv-ops-toolkit.ihsmvals.com/ftp?config=fenics-bgc&file=IRSDATA_20211129_1700_Intra.csv&directory=%2FIRS%2FIntraday%2FDaily'),
    # 按相同格式添加更多下载任务即可
    ('RFR_other1', 'https://example.com/xxx1.csv'),
    ('RFR_other2', 'https://example.com/xxx2.csv'),
]

date = datetime.now().strftime('%y%m%d')
with requests.Session() as s:
    for file_prefix, url in CSV_DOWNLOAD_TASKS:
        download = s.get(url)
        decoded_content = download.content.decode('utf-8')
        df = pd.read_csv(pd.compat.StringIO(decoded_content))
        df.to_csv(f'{file_prefix}_{date}.csv', index=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 22:45:03