Я не могу создать словарь

#python #python-3.x #dictionary #nested

#python #python-3.x #словарь #вложенный

Вопрос:

Я не могу создать словарь, структура которого похожа :

 "aggs": {
        "4": {
            "date_histogram": {
                "field": "@timestamp",
                "interval": "1m",
                "time_zone": "Asia/Kolkata",
                "min_doc_count": 1,
            },
            "aggs": {
                "5": {
                    "range": {
                        "field": "system.core.idle.pct",
                        "ranges": [{"from": 0, "to": 0.001}, {"from": 0.001, "to": 1}],
                        "keyed": true,
                    },
                    "aggs": {
                        "2": {"max": {"field": "system.core.system.pct"}},
                        "3": {"max": {"field": "system.core.idle.pct"}},
                    },
                }
            },
        }
    }
 

В основном я сталкиваюсь с проблемой при создании aggs: 5 внутри aggs: 4, а затем зацикливаю его. Мне нужно сделать это для нескольких agg. количество идентификаторов agg также может достигать 1000.

Я пытаюсь извлечь его из словаря:

 "aggs": [
        {"id": "1", "enabled": true, "type": "count", "schema": "metric", "params": {}},
        {
            "id": "2",
            "enabled": true,
            "type": "max",
            "schema": "metric",
            "params": {"field": "system.core.system.pct", "customLabel": "system"},
        },
        {
            "id": "3",
            "enabled": true,
            "type": "max",
            "schema": "metric",
            "params": {"field": "system.core.idle.pct", "customLabel": "idle"},
        },
        {
            "id": "4",
            "enabled": true,
            "type": "date_histogram",
            "schema": "bucket",
            "params": {
                "field": "@timestamp",
                "interval": "m",
                "customInterval": "2h",
                "min_doc_count": 1,
                "extended_bounds": {},
            },
        },
        {
            "id": "5",
            "enabled": true,
            "type": "range",
            "schema": "bucket",
            "params": {
                "field": "system.core.idle.pct",
                "ranges": [{"from": 0, "to": 0.001}, {"from": 0.001, "to": 1}],
            },
        },
    ]
 

Может кто-нибудь показать код, как его выполнить. По сути, мне не удается создать вложенный словарь.

Комментарии:

1. В чем проблема, с которой вы столкнулись? На самом деле вы не сообщили нам, какой неправильный вывод или код ошибки вы видите.

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

Ответ №1:

Похоже, вы используете данные в формате JSON. Вы можете увидеть эту ссылку https://realpython.com/python-json /. Вы можете использовать встроенную библиотеку JSON, чтобы скрыть все это в dict, в основном, что-то вроде этого

 json_string = """
{
    "researcher": {
        "name": "Ford Prefect",
        "species": "Betelgeusian",
        "relatives": [
            {
                "name": "Zaphod Beeblebrox",
                "species": "Betelgeusian"
            }
        ]
    }
}
"""
data = json.loads(json_string)
 

Комментарии:

1. Мне нужно создать abouve dict, используя приведенный ниже файл json.

2. Вы можете увидеть ссылку, которую я опубликовал.

Ответ №2:

добавьте всю структуру {} и замените true на True .

 {"aggs": {
        "4": {
            "date_histogram": {
                "field": "@timestamp",
                "interval": "1m",
                "time_zone": "Asia/Kolkata",
                "min_doc_count": 1,
            },
            "aggs": {
                "5": {
                    "range": {
                        "field": "system.core.idle.pct",
                        "ranges": [{"from": 0, "to": 0.001}, {"from": 0.001, "to": 1}],
                        "keyed": True,
                    },
                    "aggs": {
                        "2": {"max": {"field": "system.core.system.pct"}},
                        "3": {"max": {"field": "system.core.idle.pct"}},
                    },
                }
            },
        }
    }}
 
 {'aggs': {'4': {'date_histogram': {'field': '@timestamp',
    'interval': '1m',
    'time_zone': 'Asia/Kolkata',
    'min_doc_count': 1},
   'aggs': {'5': {'range': {'field': 'system.core.idle.pct',
      'ranges': [{'from': 0, 'to': 0.001}, {'from': 0.001, 'to': 1}],
      'keyed': True},
     'aggs': {'2': {'max': {'field': 'system.core.system.pct'}},
      '3': {'max': {'field': 'system.core.idle.pct'}}}}}}}}