如何在Python中过滤JSON数据并将指定结果存入变量供后续复用
Python 过滤JSON数据集并赋值给变量的方法
前置说明
你给出的数据集属于JSON对象数组,在Python中操作前需要先将JSON字符串解析为由字典组成的列表,如果已经是解析后的Python列表对象可以直接跳过解析步骤。
注意:标准JSON要求键名必须用双引号包裹,如果你拿到的原始JSON是你示例中无引号的格式,需要先做格式修正再解析。
具体实现代码
1. 解析JSON数据(仅原始为JSON字符串时需要)
import json # 修正为标准格式的JSON字符串示例 raw_json = ''' [ { "id": 121, "email": "email1@email.com", "firstName": "Jason", "lastName": "Wright", "accountStatus": "active" }, { "id": 122, "email": "email2@email.com", "firstName": "Carl", "lastName": "John", "accountStatus": "active" }, { "id": 123, "email": "email3@email.com", "firstName": "Ernie", "lastName": "Smith", "accountStatus": "active" } ] ''' # 解析为Python列表,每个元素是对应用户信息的字典 data = json.loads(raw_json)
2. 筛选并赋值给变量
场景1:获取第一个匹配条件的对象
和你给出的PowerShell示例逻辑完全对应,找到第一个id为123的用户就停止遍历,效率更高,找不到时默认返回None避免报错:
target_user = next((item for item in data if item["id"] == 123), None)
场景2:获取所有匹配条件的对象
如果有多个符合条件的结果,用列表推导式筛选,结果会存在列表中:
# 示例:筛选所有账户状态为active的用户 active_users = [item for item in data if item["accountStatus"] == "active"]
结果验证
打印筛选后的变量即可查看结果:
print(target_user)
输出结果:
{'id': 123, 'email': 'email3@email.com', 'firstName': 'Ernie', 'lastName': 'Smith', 'accountStatus': 'active'}
后续可以直接复用变量,比如获取用户邮箱直接写target_user["email"]即可。
内容的提问来源于stack exchange,提问作者curtcab
相关产品推荐
相关产品推荐

