Родитель от вложенного объекта SimpleNamespace - PullRequest
0 голосов
/ 06 ноября 2019

У нас есть объект конфигурации, который используется для хранения общей и специфичной для модуля информации о конфигурации, которую могут запрашивать разные модули.

Конфигурация json загружается в объект с помощью json.loads (..)с object_hook, как показано ниже. Доступ к полям конфигурации можно получить иерархически: config.network.ip, config.network.port и т. Д.

Я сомневаюсь,

  1. Возможно ли получить доступ к config.network.ip.parent, который будет таким же, как config.network.
  2. С любого узла мы можем запросить дочерний узел, используя простое выражение пути, как показано ниже?

    config.get («network.ip ») == config.network.ip

    config.network.get (« ip ») == config.network.ip

Пример кодаЯ пытался

import json
from types import SimpleNamespace

conjson = """
{
  "network": {
    "ip": "192.168.xxx",
    "port": 3000,
"invm_models" : [{"name":"lu model"} ]

  }
}
"""
class Configuration:

    def dict_to_sns(d):
        return SimpleNamespace(**d)

    def __init__(self,path):
        pass

    def __new__(self,path):
        self.config = json.loads(conjson, object_hook= Configuration.dict_to_sns)
        return self.config

config = Configuration('conf.json')
print(config.network.ip)

Пожалуйста, помогите

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