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

Python新手求助:如何将Futbin抓取的数据完整导出至CSV

解决CSV导出问题的方案

嘿,我来帮你搞定这个CSV导出的问题!你现在的代码只把最后一条日期写进了CSV,而且完全没包含球员名字和价格,这就是为啥数据不全。咱们来修改一下,把所有你控制台能看到的数据都完整导出:

首先,你需要做这几件事:

  • 先写入CSV的表头,让数据结构更清晰
  • 在遍历每个球员价格的循环里,把球员名、日期、价格这三组数据逐行写入CSV
  • 打开文件时加上newline='',避免Windows系统下CSV出现多余空行

修改后的完整代码如下:

import requests
import csv
from datetime import datetime

player_ids = {
 'Maguire OTW': 50534911,
 'Pulisic OTW' : 50559444,
}

# 打开CSV文件,准备写入(utf-8编码避免乱码,newline避免空行)
with open('yesterdayok.csv', 'w', newline='', encoding='utf-8') as csv_file:
    csv_writer = csv.writer(csv_file)
    # 先写入表头,让数据更易读
    csv_writer.writerow(['Player Name', 'Date', 'Price'])
    
    # 遍历每个球员
    for name, player_id in player_ids.items():
        # 注意把原链接里的&改成&,避免请求出错
        r = requests.get(f'https://www.futbin.com/20/playerGraph?type=yesterday&year=20&player={player_id}')
        data = r.json()
        print()
        print(name)
        # 遍历该球员的所有价格数据
        for price_entry in data['ps']:
            # 处理日期和价格
            date = datetime.utcfromtimestamp(price_entry[0] / 1000).strftime('%Y-%m-%d')
            price = price_entry[1]
            print(date, price)
            # 把当前行的球员名、日期、价格写入CSV
            csv_writer.writerow([name, date, price])

关键修改点说明:

  1. 把with open块移到最外层,整个过程只打开一次文件,避免重复IO操作
  2. 添加了表头['Player Name', 'Date', 'Price'],让CSV的内容一目了然
  3. 在遍历每个价格的循环里调用csv_writer.writerow([name, date, price]),这样控制台打印的每一条数据都会被写入CSV
  4. 把原请求链接里的&改成了&,这是HTML转义字符,直接用会导致请求参数错误
  5. 变量名id改成了player_id,因为id是Python内置函数,尽量不要用作自定义变量名
  6. 给open函数加上了encoding='utf-8',避免特殊字符出现乱码问题

这样修改后,你打开生成的CSV文件,就能看到所有球员的完整日期和价格数据啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:55:00