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

如何过滤JSON中值为指定数值的键值对?附具体场景示例

JSON键值对过滤问题解决方案

问题1:如何过滤JSON中值为0的键值对?

这个需求其实很好实现,不管你用Python还是JavaScript,都能通过遍历键值对并筛选符合条件的项轻松搞定。

Python实现

用字典推导式就能一行完成,简洁又高效:

# 假设你的原始JSON数据已经转为Python字典
original_data = {"post": 1, "bio": 1, "hashtag": 0, "profile": 0}
# 过滤掉值为0的键值对
filtered_data = {key: val for key, val in original_data.items() if val != 0}
print(filtered_data)
# 输出: {'post': 1, 'bio': 1}

JavaScript实现

通过Object.entries把对象转成键值对数组,再用reduce构建新对象:

const originalData = {"post": 1, "bio": 1, "hashtag": 0, "profile": 0};
const filteredData = Object.entries(originalData).reduce((result, [key, value]) => {
  // 只保留值不为0的项
  if (value !== 0) {
    result[key] = value;
  }
  return result;
}, {});
console.log(filteredData);
// 输出: { post: 1, bio: 1 }

问题2:过滤出权重值为1的键值对(附示例)

针对你给出的原始JSON数据,咱们只需要把筛选条件改成保留值为1的键值对就行,直接看代码:

Python实现

original_data = {"post": 1, "bio": 1, "hashtag": 0, "profile": 0}
# 只保留值为1的键值对
filtered_data = {key: val for key, val in original_data.items() if val == 1}
print(filtered_data)
# 输出: {'post': 1, 'bio': 1}

JavaScript实现

const originalData = {"post": 1, "bio": 1, "hashtag": 0, "profile": 0};
const filteredData = Object.entries(originalData).reduce((result, [key, value]) => {
  if (value === 1) {
    result[key] = value;
  }
  return result;
}, {});
console.log(filteredData);
// 输出: { post: 1, bio: 1 }

本质上这两个问题的思路是一致的:遍历所有键值对,根据指定条件(值不为0/值等于1)筛选出需要保留的项,重新构建新的对象/字典。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 16:13:10