Python使用csv_to_dict读取CSV后按key查找用户名功能异常求助
代码问题排查与修复方案
现有代码的三个核心错误
- 循环提前终止:for循环内的else分支直接写了
return False,这会导致程序只判断第一个用户名,不管匹配与否都会直接结束函数,不会遍历后续的用户数据。 - 文件名不统一:你调用csv读取函数时传入的文件名是
users.csv,但主程序里你提到的目标文件是user.csv,文件名多了一个s,会导致读错/读不到目标文件。 - 字典遍历逻辑不明确:
csv_to_dict返回的是字典结构,直接遍历字典默认取的是字典的键,你需要确认CSV中的用户名字段是存储为字典的键还是值,如果是值的话,判断n == username永远不会命中。
修复后的代码示例
def retrieve_user(username): # 修正文件名和实际目标文件一致 news_items = util.csv_to_dict('user.csv') print("The list of contacts ie: \n", news_items) for n in news_items: # 如果用户名存在字典的值里,改为 if news_items[n] == username if n == username: print('O user found!!!!') return True # 遍历完全部用户未命中再返回False return False
内容的提问来源于stack exchange,提问作者Basilis Sokiss
相关产品推荐
相关产品推荐

