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

如何将流式数据转换为指定结构的JSON文件并写入文件系统?

解决流式数据转指定JSON结构的问题

你的问题核心在于构造内层字典时多嵌套了一层"vsigns"键,咱们只需要把timestamp和vsigns子字典里的键值对平级合并,就能得到你想要的结构。

修正后的代码

for k in streaming:
    id_val = k[1]  # 把变量名改成id_val,避免和内层循环变量重名,更规范
    timestamp = k[2]
    vsigns = k[3]
    vlist = []
    for vs_type, vs_data in vsigns.items():
        # 直接合并timestamp和vs_data的所有键值对,去掉多余的vsigns嵌套
        vs_detail = {"timestamp": timestamp, **vs_data}
        vdict = {"id": id_val, vs_type: vs_detail}
        vlist.append(vdict)
    print(vlist)

关键修改点说明

  1. 变量名优化:把原代码的id改成id_val,避免和内层循环的k(这里换成了更具可读性的vs_type)重名,防止变量覆盖问题。
  2. 字典合并逻辑:用{**{"timestamp": timestamp}, **vs_data}的字典解包语法,把时间戳和体征数据的键值对直接合并成一个字典,不再嵌套"vsigns"层。
  3. 结构对齐:合并后的字典直接作为ECG/HR/NIBP对应的值,和id一起组成列表中的每个对象,完全匹配你期望的JSON结构。

预期输出效果

运行修正后的代码,会生成你想要的JSON结构:

[{
  "id": "1",
  "ECG": { "timestamp": 1652304692, "VPB_FREQ": "0", "STI": "+0.00" }
}, {
  "id": "1",
  "HR": { "timestamp": 1652304692, "HR_EKG": "87", "HR_PPG_1": "87", "HR_PULSED": "87" }
}, {
  "id": "1",
  "NIBP": { "timestamp": 1652304692, "NIBPS": "119", "NIBPD": "88", "NIBPM": "95" }
}]

如果需要将结果写入文件,可以借助Python的json模块:

import json

# 假设vlist是生成好的结果列表
with open("vital_signs.json", "w", encoding="utf-8") as f:
    json.dump(vlist, f, indent=2, ensure_ascii=False)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 21:27:29