Python读取|分隔电影分类文件生成字典报类型错误如何修复
代码问题分析与修正方案
原有代码存在的问题
- 循环拆分完每行的字段后,没有将电影名和对应分类存入提前定义的
movie_genre_dict字典 - 函数最终返回的是单次循环的最后一个
genre变量值,而不是目标字典,所以只会输出单个分类字符串 - 注释的错误逻辑尝试对字符串类型的
movie做字典索引操作,执行时会触发类型错误 - 没有处理每行末尾的换行符,可能会导致电影名末尾带多余的
\n字符
修正后的完整代码
def read_genre_data(file): movie_genre_dict = {} # 用with语句管理文件读取,避免文件句柄泄漏 with open(file, 'r', encoding='utf-8') as f: for line in f: # 先strip去除首尾空白/换行符,再拆分 line = line.strip() if not line: # 跳过空行,提升兼容性 continue genre, _, movie = line.split('|') # 直接给字典赋值,键为电影名,值为对应分类 movie_genre_dict[movie] = genre return movie_genre_dict readGenre = read_genre_data("genreMovieSample.txt") print(readGenre)
修改说明
- 移除了无用的
defaultdict变量,普通字典直接赋值即可满足需求 - 用
_占位不需要用到的序号字段,代码更简洁 - 函数最终返回组装完成的字典,完全匹配需求的输出格式要求
内容的提问来源于stack exchange,提问作者user17046526
相关产品推荐
相关产品推荐

