如何从JSON响应中筛选并保存状态为valid的号码?
筛选状态为valid的号码方法
先修正JSON格式
你提供的原始JSON片段缺少外层数组包裹,且第一个对象末尾多了个多余逗号,需要先修正为合法的JSON结构:
[ { "input": "+31623344601", "status": "valid" }, { "input": "+31623774921", "status": "invalid" } ]
常用场景下的筛选实现
Python
遍历数组,通过判断status字段筛选目标号码:
import json # 读取并解析合法的JSON数据 json_str = ''' [ {"input": "+31623344601", "status": "valid"}, {"input": "+31623774921", "status": "invalid"} ] ''' data = json.loads(json_str) valid_numbers = [item['input'] for item in data if item['status'] == 'valid'] print(valid_numbers) # 输出: ['+31623344601']
JavaScript
使用数组的filter方法筛选,再提取号码:
const jsonData = [ {"input": "+31623344601", "status": "valid"}, {"input": "+31623774921", "status": "invalid"} ]; const validNumbers = jsonData.filter(item => item.status === 'valid').map(item => item.input); console.log(validNumbers); // 输出: ['+31623344601']
命令行(jq工具)
如果用命令行处理JSON,可借助jq工具完成筛选:
echo '[ {"input": "+31623344601", "status": "valid"}, {"input": "+31623774921", "status": "invalid"} ]' | jq '.[] | select(.status == "valid") | .input'
执行后输出:"+31623344601"
内容的提问来源于stack exchange,提问作者MessageHub
相关产品推荐
相关产品推荐

