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

Python如何识别CSV分类标题行,分区解析生成Fruit、Vegetable类对象

实现方案

完全可以通过状态标记的方式实现,只需要新增一个变量记录当前所处的分类区间,不需要依赖列数判断,就能彻底避免分类误判的问题,同时还能兼容你提到的蔬菜行带额外标记的场景。

修正后的完整代码如下:

import csv
from Fruit import *
from Vegetable import *                     # Fruit & Vegetable are Class


def build_object(filename):
    fruit_list = []
    veggie_list = []
    # 新增状态变量,记录当前读取的分类,初始为无分类
    current_category = None

    with open(filename, 'r') as infile:
        reader = csv.reader(infile)
        for row in reader:
            # 跳过空行
            if not row:
                continue
            # 先判断是不是分类标题行
            first_cell = row[0].strip().upper()
            if first_cell == 'FRUIT':
                current_category = 'FRUIT'
                continue
            elif first_cell == 'VEGETABLE':
                current_category = 'VEGETABLE'
                continue
            
            # 按照当前分类处理行数据
            if current_category == 'FRUIT':
                # 水果行固定取3个属性
                f = Fruit(row[0].strip(), row[1].strip(), row[2].strip())
                fruit_list.append(f)
            elif current_category == 'VEGETABLE':
                # 处理蔬菜行带额外标记的场景
                if len(row) == 3:
                    # 第一个元素是标记,这里可以写你需要触发的其他逻辑
                    tag = row[0].strip()
                    # 后面两个是蔬菜属性
                    v = Vegetable(row[1].strip(), row[2].strip())
                    # 示例:如果是no stock标记可以给蔬菜对象加属性或者做其他处理
                    if tag == 'no stock':
                        v.in_stock = False
                else:
                    v = Vegetable(row[0].strip(), row[1].strip())
                    v.in_stock = True
                veggie_list.append(v)
    
    # 修复原代码return在print前的错误
    print(fruit_list)
    print(veggie_list)
    return fruit_list, veggie_list

关键改动说明

  • 补全了原代码缺失的import csv导入语句
  • 新增状态变量跟踪当前分类,完全基于标题行做分类切换,不受行内列数影响
  • 修复了原代码缩进错误:原代码中print语句写在return之后,永远不会被执行
  • 适配了蔬菜行带额外标记的场景,你可以根据自己的需求修改标记对应的处理逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 10:57:00