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

无法遍历特殊JSON结构,求转换为标准JSON并访问字段的方法

解决方法

你的问题核心是嵌套的JSON字符串未被解析,加上原数据里的转义引号干扰,导致无法直接访问内层n和i字段。以下是具体修复步骤和代码:

步骤说明

  • 先还原转义引号(将"替换为");
  • 把每个对象中p对应的字符串值解析为JSON对象;
  • 替换原字段值,得到标准JSON结构。

代码实现

import json

# 模拟你的原始数据
raw_data = [{'"p"': '{"n":"s","i":"1"}'},
            {'"p"': '{"n":"test","i":"2"}'}]

standard_data = []
for item in raw_data:
    # 遍历每个字典的键值对(每个字典仅含一个键)
    for raw_key, raw_value in item.items():
        # 还原转义引号,得到标准键名
        key = raw_key.replace('"', '"')
        # 还原值里的转义引号,再解析为JSON对象
        parsed_value = json.loads(raw_value.replace('"', '"'))
        # 构建标准格式字典并加入列表
        standard_data.append({key: parsed_value})

# 现在可直接访问标准JSON字段
for obj in standard_data:
    print(obj["p"]["n"], obj["p"]["i"])

你的代码报错原因

循环里的j是字典的键(比如"p"),并非键值对。for k,v in j会把键的每个字符当作迭代元素,单个字符无法拆成k和v两个值,因此触发ValueError。

最终效果

运行代码后,standard_data即为你需要的标准格式:

[{"p": {"n":"s","i":"1"}}, {"p": {"n":"test","i":"2"}}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 07:12:18