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

脚本时间统计结果转JSON格式遇阻,求正确转换方案

解决命令时间统计转JSON的问题

看起来你之前的处理思路没抓准输入的结构,导致键值对不符合预期。我来给你一个可靠的解决方案,用Python实现(脚本处理场景很常用),刚好能满足你把命令内容作为键、时间作为值的需求。

输入分析

你的原始输出是连续的cmd [命令内容] [时间]格式串,比如:

cmd ls -lah 0m1.964s cmd echo something 0m4.183s cmd setup-environment 0m0.401s

核心难点是命令内容可能包含空格(比如echo something),不能直接按空格分割,得找到每个条目里最后一个空格来拆分命令和时间。

实现代码

import json

# 你的原始统计输出字符串
input_stats = "cmd ls -lah 0m1.964s cmd echo something 0m4.183s cmd setup-environment 0m0.401s"

# 第一步:分割成单个命令条目(去掉空字符串)
cmd_entries = [entry.strip() for entry in input_stats.split("cmd ") if entry.strip()]

# 第二步:遍历每个条目,提取命令和时间
result_dict = {}
for entry in cmd_entries:
    # 找到最后一个空格的位置,把命令和时间分开
    last_space_pos = entry.rfind(" ")
    if last_space_pos == -1:
        continue  # 跳过格式异常的条目
    command = entry[:last_space_pos].strip()
    time_value = entry[last_space_pos+1:].strip()
    result_dict[command] = time_value

# 第三步:转成格式化的JSON
json_result = json.dumps(result_dict, indent=4)
print(json_result)

输出结果

运行后会得到你想要的JSON结构:

{
    "ls -lah": "0m1.964s",
    "echo something": "0m4.183s",
    "setup-environment": "0m0.401s"
}

关键说明

  • 用split("cmd ")分割是因为每个命令块都以cmd 开头,这样能精准拆分出每个命令的完整内容+时间部分。
  • 用rfind(" ")找最后一个空格,是为了兼容命令内容带空格的情况(比如echo something),避免把命令拆成多个部分。
  • 加入了空字符串过滤和异常条目跳过,让脚本更健壮,不会因为输入格式小问题崩溃。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:34:50