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

如何移除JSON中空引号元素?Python代码逻辑问题排查

问题根源:逻辑运算符用反了

你写的条件id is not None or id is not ""逻辑上永远为真——任何一个id值,要么不是None,要么不是空字符串(毕竟一个值不可能同时既是None又是空字符串),所以所有元素都会被判定为符合保留条件,自然删不掉目标元素。

正确的写法

要移除id为None或空字符串的元素,应该用**逻辑与(and)**来组合判断:

# 假设你的JSON解析后的数据存在data列表中
filtered_data = [item for item in data if item.get('id') is not None and item.get('id') != ""]

如果你的id不会出现0、False这类需要保留的“假值”,还可以用更简洁的写法:

filtered_data = [item for item in data if item.get('id')]

(注:这种简洁写法会把0、False等布尔假值也过滤掉,若id可能包含这些合法值,优先用第一种精确判断的写法)

为什么之前的代码无效?

举两个直观例子:

  • 当id是None时,id is not None为假,但id is not ""为真,or组合后整体为真,元素被保留;
  • 当id是""时,id is not None为真,or组合后整体还是真,元素也被保留;
  • 只有当id同时是None和空字符串时才会被过滤,但这种情况根本不可能发生。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:30:21