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

Python编写CSV作曲家搜索函数运行返回空列表问题求助

代码问题排查与修复

核心错误点

  • if判断逻辑错误:你在判断条件中额外加了and record_id in row[composer_column]的逻辑,这里的record_id是你传入的列名字符串BL record ID,该字符串不可能出现在存储作曲家姓名的列内容中,导致条件永远不成立,不会往结果列表写入数据,这是返回空列表的核心原因。
  • 调用函数后未输出结果:你调用了ComposerSearch函数但没有打印返回值,就算逻辑正确也无法看到返回的ID列表。
  • (可选优化点)未处理大小写/空格匹配问题:如果输入的姓名大小写、前后空格和CSV内的内容不一致,也会出现匹配不到的情况,可增加标准化处理提升匹配准确率。

修复后的代码

import csv # 导入语句建议放在文件头部,不要放在函数内部

def ComposerSearch(filename, composer_column, name_search, record_id_col):
     ids_list = []
     # 对搜索关键词做标准化:转小写+去除前后空格
     name_search_norm = name_search.strip().lower()
     with open(filename, newline = '', encoding = 'utf-8-sig') as csvfile:
        reader = csv.DictReader(csvfile)
        for row in reader:
           # 仅保留必要的判断逻辑,同时对CSV内的作曲家内容做标准化
           composer_content = row[composer_column].strip().lower()
           if name_search_norm in composer_content:
             ids_list.append(row[record_id_col])
     return ids_list

name_search = input("Enter Composer's name: ")
result = ComposerSearch('bl_printed_music_500.csv', 'Composer', name_search, 'BL record ID')
# 打印返回结果
print("匹配到的BL record ID列表:", result)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:15:03