如何按索引优先级提取JSON字段值:先取所有分组第1位,再依次取后续位
实现方案
你可以先收集所有分组的a列表,再按索引维度遍历取值即可,兼容不同长度的分组数组:
# 第一步:收集所有分组的a数组 all_groups = [item["a"] for item in y.values()] # 第二步:计算最长的数组长度,确定要遍历的最大索引 max_index = max(len(group) for group in all_groups) # 第三步:按索引遍历,同索引下遍历所有分组取值 for idx in range(max_index): for group in all_groups: # 避免短数组索引越界 if idx < len(group): print(group[idx]["ss"])
运行后输出结果和你预期的完全一致:
one one two two three
逻辑说明
原来的代码是「先遍历全部分组,每个分组遍历完所有元素再进入下一个分组」,所以输出是按分组排序的;调整后把索引遍历放在外层,同索引位置优先取完全部分组的值,就实现了你要的优先级逻辑。
内容的提问来源于stack exchange,提问作者Oksana Ok
相关产品推荐
相关产品推荐

