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

Python将键值对转为排序JSON时遇RunError.JsonParseError的解决咨询

问题分析与修复方案

错误原因

你的代码出现RunError.JsonParseError的核心问题出在输入处理环节,而非JSON序列化步骤:

  • 当输入的键值对中value包含空格时,split(' ')会将value拆分为多个元素,导致key, value = ...解包失败,抛出ValueError,部分测试系统会将这类运行时异常映射为JsonParseError。
  • 即使value不含空格,若输入行存在连续空格或首尾空格,split(' ')会生成空字符串元素,同样会触发解包错误,最终导致JSON序列化流程中断。

修复步骤

1. 修正输入拆分逻辑

将split(' ')替换为split(maxsplit=1),限制仅拆分一次,确保value包含空格时也能正确提取键值:

key, value = input().split(maxsplit=1)

同时移除多余的str(input())——input()本身返回字符串类型,无需二次转换。

2. 可选:添加容错处理(针对异常输入)

如果测试用例存在空行或格式不规范的输入(比如无空格的单行内容),可以添加简单的判断逻辑,避免程序崩溃:

for i in range(n):
    line = input().strip()
    if not line:
        continue  # 跳过空行
    parts = line.split(maxsplit=1)
    if len(parts) == 1:
        key = parts[0]
        value = ""  # 无对应value时设为空字符串
    else:
        key, value = parts
    dict_[key] = value

修复后的完整代码

import json

n = int(input())
dict_ = {}

for i in range(n):
    key, value = input().split(maxsplit=1)
    dict_[key] = value

sorted_by_keys = dict(sorted(dict_.items()))
json_object = json.dumps(sorted_by_keys, separators=(',', ':'))

print(json_object)

验证说明

修复后的代码可以正确处理包含空格的value,生成的JSON字符串完全符合规范(紧凑格式也是合法JSON,解析器不会因空格问题报错),能够通过测试系统的JSON解析校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 08:16:00