#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'}}}}}}}}