Python技术求助:如何将JSON中的所有traceId存入单个列表?
提取JSON中所有traceId到单一列表的解决方案
没问题,我来帮你搞定这个需求!你的核心问题是没有把遍历到的每个traceId收集到一个列表里,反而每次循环都覆盖了变量,还做了没必要的split()操作(因为每个traceId本身就是单个字符串,没有空格需要分割)。
修正后的代码方案
首先初始化一个空列表,然后在遍历JSON数组时,把每个找到的traceId添加进去:
import json # 初始化空列表存储所有traceId trace_ids = [] with open('requests.json') as f: data = json.load(f) # 遍历每个JSON对象 for item in data: if 'traceId' in item: # 将traceId追加到列表 trace_ids.append(item['traceId']) # 输出最终的traceId列表 print(trace_ids)
运行这段代码后,trace_ids就是包含所有目标traceId的单一列表了,输出会是类似这样的格式:
['17298626-991c-e490-bae6-47079c6e2202', '17298496-19bd-2f89-7b5f-881921abc632', ...]
更简洁的Pythonic写法
如果你喜欢更简洁的代码,可以用列表推导式一次性完成提取,代码更紧凑:
import json with open('requests.json') as f: data = json.load(f) # 列表推导式直接过滤并提取traceId trace_ids = [item['traceId'] for item in data if 'traceId' in item] print(trace_ids)
这个写法和上面的逻辑完全一致,只是把循环和判断合并成了一行代码,更符合Python的风格。
内容的提问来源于stack exchange,提问作者krishnanshu tyagi
相关产品推荐
相关产品推荐

