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

Python遍历团队列表匹配CSV行提取数据的代码问题排查

问题分析与修复方案

原代码存在的问题

  • 团队列表赋值逻辑错误:循环for i in my_list: team_list = [i]会每次覆盖team_list,最终仅保留最后一个团队,完全没用到整个团队列表
  • 条件判断逻辑错误:row[3]是字符串类型(比如'team1'),拿它和列表team_list比较永远不会相等,应改为判断团队名是否在目标列表内
  • 使用Python内置关键字object作为变量名,易引发隐性冲突,建议替换为obj_id这类自定义名称
  • 函数定义嵌套在文件打开的with块内完全没必要,代码结构冗余绕弯
  • 未跳过CSV表头行,会导致表头被误当作数据行处理

修复后的代码

import csv

# 替换内置关键字object为obj_id,避免冲突
obj_id = input('Object ID: ')
my_teams = ['team1', 'team2', 'team3', 'team4']
extracted_data = []  # 存储提取的信息,后续直接调用此变量即可

with open(latest_csv, 'r') as report:
    reader = csv.reader(report, delimiter=',')
    next(reader)  # 跳过CSV表头行
    
    for row in reader:
        # 检查团队名在目标列表中,且Object ID匹配
        if row[3] in my_teams and row[14] == obj_id:
            # 提取需要的列:团队名、第4列、第5列、Object ID
            extracted_data.append([row[3], row[4], row[5], row[14]])

# 后续直接调用extracted_data即可,比如打印验证结果
print(extracted_data)

说明

  • 直接用my_teams作为目标团队集合,无需额外转换列表
  • 用next(reader)跳过表头,避免混入无效数据
  • 提取的数据存放在全局变量extracted_data中,后续任意位置都能直接调用
  • 移除了不必要的嵌套函数,代码更简洁直观

示例:输入Object ID为1时,extracted_data会得到:
[['team1', 'Denver', 'CO', '1'], ['team2', 'NY', 'NY', '1']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 00:15:36