У меня есть 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). Любая помощь в любом направлении будет очень полезна. Спасибо!