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

使用pandas读取CSV实现Python登录表单触发AttributeError如何解决

错误原因

报错的核心原因是CSV分隔符与pandas默认读取规则不匹配:

  • pandas read_csv 默认用逗号 , 做列分隔符,但你提供的CSV用的是分号 ;,读取后所有列会被合并成一个列,自然找不到brugernavn这个列属性,就报了这个错。
  • 还有两个小问题:read_csv返回的本身就是DataFrame,不需要再套pd.DataFrame()转换;else下面的print缩进不对,运行会报语法错。
修复代码

只要给read_csv加上分隔符参数就行,完整修正后的代码如下:

import pandas as pd

class Login:
    def Userlogin(self):
        # 指定sep为分号,匹配CSV的分隔规则
        df = pd.read_csv('Csv/Users.csv', sep=';')

        print('Log ind\n')
        user = input('Brugernavn : ')
        pasw = input('Password : ')

        # 用方括号取列比属性取列更稳妥,避免和内置属性重名冲突
        matching_creds = ((df['brugernavn'] == user) & (df['password'] == pasw)).any()

        if matching_creds:
            print('succes')
        else:
            # 修复缩进错误
            print('kontakt admin')

LoginHandler = Login()
LoginHandler.Userlogin()
优化建议
  • 尽量用df['列名']的方式取列,不要用df.列名的属性访问,万一列名和DataFrame自带的方法/属性重名,会直接出逻辑问题。
  • 判断有没有匹配的凭证不用算长度,用any()方法更高效,只要有一条符合就会返回True。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 14:15:00