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

使用try-except结构从字典列表中筛选输出国籍US的实现方案

实现方案

原有代码问题

  • 类型判断语句item["types"] == ["nationality", "political"]仅做了等值判断,没有作为过滤条件生效
  • 未添加国籍值为「US」的过滤逻辑
  • 全局捕获所有异常的规则过于宽泛,会掩盖键不存在、索引越界等其他报错,不利于问题排查
  • 代码缩进不符合Python语法要求

正确实现代码

try:
    list_components = js['results'][0]['list_components']
    has_us_nationality = False
    for item in list_components:
        try:
            # 先校验条目类型为国籍类,再判断国籍值为US
            if item["types"] == ["nationality", "political"] and item["short_name"] == "US":
                print('列表对应的国籍信息为:', item["short_name"])
                has_us_nationality = True
        except KeyError:
            # 捕获当前条目缺少types/short_name键的情况,直接跳过即可
            continue
    if not has_us_nationality:
        print('该列表无可用的国籍信息。')
except (KeyError, IndexError):
    # 捕获js整体结构不符合预期的情况:缺失results键、results为空、缺失list_components键
    print('该列表无可用的国籍信息。')

实现说明

  • 采用两层嵌套try/except结构:外层专门处理源数据js整体结构不符合预期的异常,内层处理单条条目缺失对应键的异常,避免无差别捕获所有报错
  • 仅当条目同时满足「类型为国籍政治类」「短名称为US」两个条件时,才输出对应信息
  • 用标记位has_us_nationality判断遍历结束后是否存在符合要求的国籍信息,避免无匹配结果时漏输出提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:27:04