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

Python中json.loads转换含两组{}的JSON字符串为dict报错如何解决

问题根因

你使用的字符串不符合JSON规范:

  1. 顶层存在两个用逗号分隔的独立{}对象,合法JSON只能有一个顶层结构(对象/数组/基础值)
  2. 字符串中的"是HTML转义后的双引号,需要先还原才能正常解析

解决方案

方案1:解析为字典列表(保留两个独立对象)

如果需要分开保留两组键值,给字符串外层加方括号包裹为JSON数组即可,示例代码:

import json
import html

# 原字符串
test = '{"124074": "0.0944", "124111": "0.0809", "124194": "0.0788"}, {"128213": "0.39", "129043": "0.458", "129054": "0.378"}'

# 还原HTML转义
raw_str = html.unescape(test)
# 外层加方括号转为合法JSON数组
legal_json = f"[{raw_str}]"
# 解析得到两个字典组成的列表
dict_list = json.loads(legal_json)

# 遍历所有键值
for item in dict_list:
    for key, value in item.items():
        print(key, value)

方案2:合并为单个字典

如果需要把两组键值整合到同一个字典里,解析后合并即可:

# 接方案1的解析结果
merged_dict = {}
for item in dict_list:
    merged_dict.update(item)

# Python 3.9+ 可直接用合并运算符
# merged_dict = dict_list[0] | dict_list[1]

注意事项

若两个原始对象存在重复的键,合并时后出现的键值会覆盖先出现的,可根据业务需求调整合并逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 07:45:04