You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 如何从流式生成的嵌套字典列表提取'p'键值并保留原结构

Python 实现方案

一次性全量处理现有数据

直接使用嵌套列表推导式即可完成提取,同时保留原有二级嵌套结构,还会自动把p对应的字符串格式数值转为浮点型:

# 原始二级嵌套字典列表
raw_data = [
  [{'T': 1626610583088, 'p': '12562.12'}, {'T': 1626610583088, 'p': '12562.12'}],
  [{'T': 1626610583088, 'p': '12562.12'}, {'T': 1626610583088, 'p': '12562.12'}, {'T': 1626610583088, 'p': '12562.12'}],
  [{'T': 1626610583088, 'p': '12562.12'}]
]

# 提取p值并保留结构
result = [[float(item['p']) for item in sub_list] for sub_list in raw_data]

处理后result的输出完全符合要求:[[12562.12, 12562.12], [12562.12, 12562.12, 12562.12], [12562.12]]

数据流增量处理方案

因为数据是持续新增的,不需要每次全量重处理整个列表,每次新的子列表生成时单独处理后追加到结果集即可,性能更高:

# 初始化结果存储列表
result = []

# 新增子列表时调用该方法即可
def process_new_sub(raw_sub_list):
    processed_sub = [float(item['p']) for item in raw_sub_list]
    result.append(processed_sub)

# 示例调用
new_sub = [{'T': 1626610583100, 'p': '12564.22'}, {'T': 1626610583100, 'p': '12564.25'}]
process_new_sub(new_sub)

异常兼容优化

如果存在部分字典没有p键的场景,可增加判断避免报错:

# 加判断兼容缺键情况
result = [[float(item['p']) for item in sub_list if 'p' in item] for sub_list in raw_data]

内容的提问来源于stack exchange,提问作者Liviu Barbu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 16:51:03