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

运行CSV文件触发NameError:name 'name'未定义问题排查求助

问题排查与解决

核心报错原因

你执行命令时犯了低级错误:你运行的是CSV文件而非Python脚本文件。

当你输入python before.csv,Python会把CSV文件的内容当作Python代码解析,而CSV第一行是name,house,这在Python语法里是无效语句,自然抛出NameError: name 'name' is not defined。

正确操作步骤:

  1. 将你的Python代码保存为单独的脚本文件,比如scourgify.py
  2. 执行命令:python scourgify.py

代码本身的两处修正点

除了执行命令的错误,你的代码还有两个细节问题需要调整:

  1. 姓名拆分顺序颠倒:CSV里的name字段格式是姓, 名(比如Potter, Harry),你当前代码把拆分后的第一个值赋值给first、第二个给last,会导致姓和名完全搞反,应该交换赋值顺序。
  2. 拆分后姓名带多余空格:直接用split(',')拆分可能会让姓名保留前置空格,需要做空格清理。

修正后的代码:

import csv

students = []
with open("before.csv") as file:
    reader = csv.DictReader(file)
    for row in reader:
        # 按逗号加空格拆分,限制拆分次数避免姓名含逗号的异常情况
        last, first = row["name"].strip().split(', ', 1)
        # 确保姓名无多余空格,再存入字典
        students.append({"first": first.strip(), "last": last.strip(), "house": row["house"]})
print(students)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 19:55:15