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

Python循环仅返回首个通话记录实例,实际存在48条记录的问题

提取所有通话日志的解决方案

你的代码问题出在用单个变量存储匹配结果,每次找到带call_duration的条目时,都会覆盖之前的值,所以不管有没有break,最终只能得到一条记录。要收集所有48条通话记录,需要把存储结果的变量改成列表,逐条添加匹配项:

修改后的代码:

import json

# 打开并加载JSON文件
with open('messages_1.json') as f:
    data = json.load(f)

call_key = 'call_duration'
calls = []  # 用列表存储所有通话记录

# 遍历所有消息,收集带通话时长的条目
for msg in data['messages']:
    if call_key in msg:
        calls.append(msg)

# 打印所有通话记录
print(calls)
# 如果想查看总数,可以加这句
print(f"共提取到{len(calls)}条通话记录")

关键修改点:

  • 把calls = None改成calls = [],用列表来存储多个结果
  • 替换calls = i为calls.append(i),将匹配到的每条记录添加到列表中
  • 移除break语句,确保遍历完所有消息条目
  • 改用with语句打开文件,自动处理文件关闭,更安全规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:28:09