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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:54:03