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

Python数据处理问题:Organization Names工作表写入为空

问题排查与修复

问题原因

  1. 缩进与逻辑位置错误:添加组织数据的代码被放在遍历organization_patterns的循环内部,且仅在当前模式不匹配时执行——此时is_organization初始值为False,永远不会触发添加;就算匹配到模式,设置is_organization=True后会直接break跳出循环,也不会执行这段append代码。
  2. 分支结构混乱:原代码中处理垃圾数据的else块与遍历组织模式的for循环绑定(Python中for循环后的else仅在循环未触发break时执行),导致逻辑层级错乱,后续重复判断也容易引发冲突。

修复后的代码

# Sorting out the data
for id, name in data:
    is_organization = False
    # 判断是否为组织名称
    for pattern in organization_patterns:
        if pattern in name:
            is_organization = True
            break
    # 匹配到组织模式,直接加入对应列表
    if is_organization:
        organization_names.append((id, name))
    else:
        # 非组织数据,判断是否为垃圾数据
        is_junk = False
        for keyword in junk_keywords:
            if keyword in name:
                is_junk = True
                break
        if is_junk:
            junk_data.append((id, name))
        else:
            # 既非组织也非垃圾,归入印度人名列表
            indian_names.append((id, name))


# 输出工作簿
output_wb = Workbook()

# 写入印度人名工作表
indian_names_sheet = output_wb.create_sheet('Indian Names')
indian_names_sheet.cell(row=1, column=1).value = 'ID'
indian_names_sheet.cell(row=1, column=2).value = 'Name'
for i, (id, name) in enumerate(indian_names):
    indian_names_sheet.cell(row=i+2, column=1).value = id
    indian_names_sheet.cell(row=i+2, column=2).value = name

# 写入组织名称工作表
organization_names_sheet = output_wb.create_sheet('Organization Names')
organization_names_sheet.cell(row=1, column=1).value = 'ID'
organization_names_sheet.cell(row=1, column=2).value = 'Name'
for i, (id, name) in enumerate(organization_names):
    organization_names_sheet.cell(row=i+2, column=1).value = id
    organization_names_sheet.cell(row=i+2, column=2).value = name

关键修改点

  • 将组织数据的添加操作移到遍历模式的循环外部,确保只要匹配到任意组织模式,数据就会被正确加入organization_names
  • 重构分支逻辑:先处理组织数据,再判断垃圾数据,最后处理正常人名,层级清晰无冲突
  • 移除原代码中无效的缩进判断,消除逻辑混乱

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 03:55:23