Python如何从API返回的JSON数据中提取isreal为true的目标人员信息
实现方法
原有硬编码逐索引取值的写法完全无法适配有效人员位置不固定的场景,并且原代码中键名没有加字符串引号的写法在Python中会直接触发语法错误,需要调整为动态遍历匹配的逻辑,具体实现如下:
核心逻辑步骤
- 直接定位到人员列表所在的数组节点,不需要逐次写索引路径做硬编码
- 遍历数组匹配
information节点下isreal值为true的唯一记录(题目已明确每次仅存在1条符合条件的记录) - 从匹配到的有效记录中直接取出需要的
name字段,跳过其余无效数据
代码实现
可读性优先的基础写法:
# 定位到人员数据数组 people_array = jsonfromapi['people']['young']['data'] real_person = None # 遍历查找唯一有效人员 for person in people_array: if person['information']['isreal']: real_person = person break # 直接取出目标字段,无冗余输出 print(real_person['information']['name'])
大数组场景下的高效写法:
people_array = jsonfromapi['people']['young']['data'] # 匹配到第一条符合条件的记录就终止遍历,无需遍历全量数据 real_person = next(p for p in people_array if p['information']['isreal']) # 直接取出目标name字段 target_name = real_person['information']['name']
这种动态匹配的写法完全不受有效人员在数组中的索引位置影响,不需要随数组长度变化调整硬编码的索引值,也不会输出其余无效人员的冗余信息,相比硬编码写法可维护性更高,也能覆盖数组长度更大、有效人员位置随机的场景。
内容的提问来源于stack exchange,提问作者jkier1998
相关产品推荐
相关产品推荐

