JSON中匹配following_status为followed时获取对应外层键名
实现方案
核心逻辑与具体编程语言无关,通用步骤如下:
- 先将原始JSON字符串解析为当前编程语言可操作的结构化对象(字典/普通对象类型)
- 遍历该结构化对象的所有顶层键值对
- 逐个检查每个键对应的子对象中,
following_status字段的值是否等于followed - 收集所有符合匹配条件的顶层键,即为最终结果
Python 实现示例
import json # 原始JSON数据 json_str = ''' { "key1": { "last_interaction": "2022-06-20 06:55:55.652434", "following_status": "followed", "session_id": "f594abec-3819-4461-9b6c-0df0f11cf382", "job_name": "blogger-following", "target": "name1", "liked": 21, "watched": 7, "commented": 0, "followed": false, "unfollowed": false, "scraped": false, "pm_sent": false }, "key2": { "last_interaction": "2022-06-20 08:05:18.777275", "following_status": "none", "session_id": "f594abec-3819-4461-9b6c-0df0f11cf382", "job_name": "blogger-following", "target": "name2", "liked": 16, "watched": 7, "commented": 0, "followed": false, "unfollowed": false, "scraped": false, "pm_sent": false }, "key3": { "last_interaction": "2022-06-20 08:02:35.141878", "following_status": "followed", "session_id": "f594abec-3819-4461-9b6c-0df0f11cf382", "job_name": "blogger-following", "target": "name3", "liked": 9, "watched": 22, "commented": 0, "followed": false, "unfollowed": false, "scraped": false, "pm_sent": false } } ''' # 解析为字典结构 data = json.loads(json_str) # 筛选符合条件的外层键 result = [key for key, val in data.items() if val.get("following_status") == "followed"] print(result)
运行后输出:['key1', 'key3']
JavaScript 实现示例
// 原始JSON数据 const jsonStr = `{ "key1": { "last_interaction": "2022-06-20 06:55:55.652434", "following_status": "followed", "session_id": "f594abec-3819-4461-9b6c-0df0f11cf382", "job_name": "blogger-following", "target": "name1", "liked": 21, "watched": 7, "commented": 0, "followed": false, "unfollowed": false, "scraped": false, "pm_sent": false }, "key2": { "last_interaction": "2022-06-20 08:05:18.777275", "following_status": "none", "session_id": "f594abec-3819-4461-9b6c-0df0f11cf382", "job_name": "blogger-following", "target": "name2", "liked": 16, "watched": 7, "commented": 0, "followed": false, "unfollowed": false, "scraped": false, "pm_sent": false }, "key3": { "last_interaction": "2022-06-20 08:02:35.141878", "following_status": "followed", "session_id": "f594abec-3819-4461-9b6c-0df0f11cf382", "job_name": "blogger-following", "target": "name3", "liked": 9, "watched": 22, "commented": 0, "followed": false, "unfollowed": false, "scraped": false, "pm_sent": false } }`; // 解析为JS对象 const data = JSON.parse(jsonStr); // 筛选符合条件的外层键 const result = Object.entries(data) .filter(([_, val]) => val.following_status === "followed") .map(([key]) => key); console.log(result);
运行后输出:['key1', 'key3']
如果你使用其他编程语言,只需要按照前述通用步骤,调用对应语言的JSON解析方法、对象遍历方法即可实现相同效果。
内容的提问来源于stack exchange,提问作者ron cam
相关产品推荐
相关产品推荐

