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

Python过滤布尔值False时赋值失效问题的排查与解决

list_operations函数过滤done=False时失效的问题修复

问题现象

  • 实现了Python函数list_operations,用于从API端点拉取操作列表,支持通过filter参数对结果进行过滤
  • 调用list_operations(filter='done=True')时过滤功能正常,但调用list_operations(filter='done=False')时,即便API返回的操作条目里done字段值为False,过滤也无法生效,调试发现item_value始终是完整的操作字典,没有被正确处理

问题根源

问题出在判断字典键是否存在的代码逻辑:

  • 原代码使用if item_value.get(filter_el)来判断键是否存在,当键对应的值是False时,get方法返回的False会被if语句判定为“假”,误判成键不存在,导致后续赋值逻辑不执行
  • 正确的键存在性判断应该使用if filter_el in item_value,这个方式仅检查键是否存在于字典中,不会受对应值的布尔属性影响

修复代码

将判断键存在的代码段:

# 错误写法
if item_value.get(filter_el):
    item_value = item_value[filter_el]

替换为:

# 正确写法
if filter_el in item_value:
    item_value = item_value[filter_el]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:05:32