如何用Python模拟Bash的jq操作提取JSON中租户管理员的ID?
Python 替代循环提取JSON中指定字段的内置方法
你可以用Python内置的列表推导式或者map()函数来替代显式循环,实现类似jq的字段提取效果,无需额外依赖库:
方法1:列表推导式(推荐,可读性更强)
import json # 读取JSON文件 with open('data.json', 'r') as f: data = json.load(f) # 提取所有tenant_admins的id值 admin_ids = [admin['id'] for admin in data.get('tenant_admins', [])]
data.get('tenant_admins', [])的作用是当JSON中不存在tenant_admins字段时,返回空列表,避免抛出KeyError异常。
方法2:map() + lambda函数
import json with open('data.json', 'r') as f: data = json.load(f) admin_ids = list(map(lambda admin: admin['id'], data.get('tenant_admins', [])))
map()会对tenant_admins中的每个元素执行lambda函数提取id,最后通过list()将迭代器转换为列表。
这两种方式都是Python原生内置的实现,无需编写显式的for循环,代码更简洁紧凑。
内容的提问来源于stack exchange,提问作者Eric P
相关产品推荐
相关产品推荐

