python-定义给定输入json的类结构

python-定义给定输入json的类结构,python,json,class,parsing,object,Python,Json,Class,Parsing,Object,我有一个json,根据字段“source”的值,它有两种不同类型的子结构。示例json如下所示: { "abc": "abc1", "value": [ { "source": "s1", "value": [ { "name": "n1", "value": [ { "value": "v1" },

我有一个json,根据字段“source”的值,它有两种不同类型的子结构。示例json如下所示:

{
  "abc": "abc1",
  "value": [
    {
      "source": "s1",
      "value": [
        {
          "name": "n1",
          "value": [
            {
              "value": "v1"
            },
            {
              "value": "v2"
            }
          ]
        }
      ]
    },
    {
      "source": "s2",
      "value": [
        {
          "h1": "...",
          "h2": [
            {
              "h3": "..."
            },
            {
              "h3": "..."
            }
          ]
        }
      ]
    }
  ]
}
我已经编写了部分/不完整的代码来用jsonstruct解析它:

import json

import jsonstruct

def parse_json_obj(json_obj):
    json_str = json.dumps(json_obj)
    return jsonstruct.decode(json_str, ABCData)

class Entry(object):
    name = ""
    value = ""

class NameData(object):
    name = ""
    value = [Entry()]

class SourceData(object):
    source = ""
    value = [NameData()]

class ABCData(object):
    abc = ""
    value = [SourceData()]


a = parse_json_obj(<json_data_above>)
print a.value[0].source                # prints s1
print a.value[0].value[0].value[0].value       # prints v1
导入json
导入jsonstruct
def parse_json_obj(json_obj):
json_str=json.dumps(json_obj)
返回jsonstruct.decode(json\u str,ABCData)
类条目(对象):
name=“”
value=“”
类名称数据(对象):
name=“”
值=[Entry()]
类SourceData(对象):
source=“”
值=[NameData()]
类ABCData(对象):
abc=“”
值=[SourceData()]
a=解析_json_obj()
打印a.value[0]。源#打印s1
打印a.value[0]。值[0]。值[0]。值#打印v1

现在,我专注于如何扩展它以合并另一个源类型(s2)子结构。任何方向的帮助都会非常有用。谢谢

使用jsonstruct有什么特别的原因吗?这似乎是一个不太完整的项目,是@csunday95的一个分支。。没有特别的原因,我发现这是第一件事。那么如何在jsonpickle中实现呢?使用jsonstruct有什么特别的原因吗?这似乎是一个不太完整的项目,是@csunday95的一个分支。。没有特别的原因,我发现这是第一件事。那么如何在jsonpickle中实现呢?