python - определить структуру класса для заданного ввода json - PullRequest
1 голос
/ 25 апреля 2019

У меня есть JSON, который имеет 2 различных типа подструктуры в зависимости от значения поля «источник». Пример 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

Теперь я застрял в том, как расширить его, чтобы включить другую структуру типа источника (s2). Любая помощь в любом направлении будет очень полезна. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...