繁体   English   中英

使用格式将python字符串转换为json

convert python string to json with formatting

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有以下代码在列表列表中生成父子关系

Levels=[['L1','L1','L2'],
        ['L1','L1','L3'],
        ['L1','L2'],
        ['L2','L2','L3'],
        ['L2','L2','L1'],
        ['L3','L2'],
        ['L4','L2','L1'],
        ['L4','L2','L4']]

def append_path(root, paths):
    if paths:
        child = root.setdefault(paths[0], {})
        append_path(child, paths[1:])

for p in Levels:
    append_path(root, p)

# Print results
import json
print(json.dumps(root,  indent=4))

生成的输出采用以下格式

{
    "L1": {
        "L1": {
            "L2": {},
            "L3": {}
        },
        "L2": {}
    },
    "L2": {
        "L2": {
            "L3": {},
            "L1": {}
        }
    },
    "L3": {
        "L2": {}
    },
    "L4": {
        "L2": {
            "L1": {},
            "L4": {}
        }
    }
}

我想将其转换为我的jquery可视化所需的以下格式。

      "name": "L1",
      "children": [
        {
          "name": "L1",
           "children":[
              {
                "name":"L3",
                "children":[{}]
              },
              {
                "name":"L1",
                "children":[{}]
              }]
        },
        {
            "name":"L2",
            "children":[{}]
        }

      ]

等等

1 个回复

您可以递归地执行此操作(在以问题中发布的格式构建root之后):

def convert(d):
    return [{'name': k, 'children': convert(v) if v else [{}]} for k, v in d.items()]

print(json.dumps(convert(root),  indent=2))

产量

[
  {
    "children": [
      {
        "children": [
          {
            "children": [
              {}
            ],
            "name": "L3"
          },
          {
            "children": [
              {}
            ],
            "name": "L1"
          }
        ],
        "name": "L2"
      }
    ],
    "name": "L2"
  },
  {
    "children": [
      {
        "children": [
          {}
        ],
        "name": "L2"
      }
    ],
    "name": "L3"
  },
  {
    "children": [
      {
        "children": [
          {
            "children": [
              {}
            ],
            "name": "L4"
          },
          {
            "children": [
              {}
            ],
            "name": "L1"
          }
        ],
        "name": "L2"
      }
    ],
    "name": "L4"
  },
  {
    "children": [
      {
        "children": [
          {}
        ],
        "name": "L2"
      },
      {
        "children": [
          {
            "children": [
              {}
            ],
            "name": "L2"
          },
          {
            "children": [
              {}
            ],
            "name": "L3"
          }
        ],
        "name": "L1"
      }
    ],
    "name": "L1"
  }
]
1 JSON转换为字符串格式

我有一个类似将JSON数据转换为字符串的要求,请您对此提供帮助。 我来自服务的JSON数据: 我需要将其转换为以下格式 谢谢,Sridhar ...

2 将字符串转换为json格式

我有一个像 我无法更改该值,因为它来自某些配置。 我想将值转换为 JSON 格式,如下所示。 有没有办法不根据逗号手动拆分并执行它? ...

2019-04-08 04:05:58 1 57   java
6 使用python将公钥字符串转换为pem格式

我在 python 中有以下字符串: 我想知道如何将其转换为 pem 格式以使用RSA.importKey(pubkey) 我需要能够操作变量 pubkey,因为它的数据可以由用户动态更改,所以我不能只更改字符串数据。 有谁知道这是怎么做到的吗? 谢谢! ...

8 使用python将bash字符串转换为JSON对象

我有一个键值对,我想从嵌入了以下python的bash脚本中导出。bash脚本的节选: 上述bash脚本中的嵌入式python 我对Python还是很陌生,我会承认在经过大量的速度研究之后,我已经将它们哈希在一起了,而这正是我在脚本中所需要的。 将名称值对作为json数组发送到 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2021 STACKOOM.COM