хорошего дня, я надеюсь, что любой сможет помочь мне найти решение с этим, я был бы очень признателен, я ищу способ заменить или обновить индекс метаданных эластичной визуализации, что я пытаюсь сделать, это Для автоматизации с помощью Python и обновления каждого индекса метаданных визуализации каждый из индексов в отдельности имеет определенное количество индексов, и для каждой визуализации мне нужно изменить это число конкретных индексов, например, существуют визуализации, с которыми я могу столкнуться, которые имеют 4 или 6 индексов, мне нужно заменить или обновить новые индексы автоматически с помощью скрипта, вот мой скрипт
from elasticsearch_dsl import Search
from elasticsearch import Elasticsearch
from common import handle_elasticsearch, finish_line, get_accounts, get_time
import creds
from elasticsearch_dsl import Q
import requests
from elasticsearch import helpers
import os, sys, json, unicodedata
import json
elastic_url = creds.elastic_url
elastic_auth = creds.elastic_http_auth
# def meta(loreal_instagram_contenido_bar):
es = handle_elasticsearch(elastic_url, elastic_auth)
def updater(es, visualization_name):
query = {
"query": {
"bool": {
"filter": [
{
"term": {
"visualization.title": visualization_name
}
}
]
}
}
}
raw_recolectados = es.search(index=".kibana", body=query, size=1)
data = json.dumps(raw_recolectados)
data = json.loads(data)
data = data.replace('indexname','newindexname')
return data
recolectados = updater(es, "visualization_bar_chart")
print (recolectados)
Я сделал функцию поиска для визуализации, передавая имя визуализации в качестве параметра, если вы видите JSON, есть два «ключа» Индекса. Как я уже говорил выше, я могу встретить более двух индексов, и мне нужно замените все это, следующий ответ - только часть всего ответа JSON На моей консоли
'kibanaSavedObjectMeta':{
'searchSourceJSON':'{\n "index": "index_name_to_replace",\n "query": {\n "query": {\n "match_all": {}\n },\n "language": "lucene"\n },\n "filter": [\n {\n "meta": {\n "index": "index_name_to_replace",\n "negate": false,\n "disabled": false,\n "alias": null,\n "type": "phrase",\n "key": "social_network.keyword",\n "value": "ig",\n "params": {\n "query": "ig",\n "type": "phrase"\n }\n },\n "query": {\n "match": {\n "social_network.keyword": {\n
"query": "ig",\n "type": "phrase"\n }\n }\n },\n "$state": {\n "store": "appState"\n
}\n }\n ]\n}'
}
}
}
}
]
}
}
но когда я пытался реализовать метод замены, я получил:
file "updater.py", line 37, in updater
data = data.replace('indexname', 'indexname')
AttributeError: 'dict' object has no attribute 'replace'
Если у кого-то есть Сокращенное решение для этого Типа проблемы / решения, я БУДУ очень очень признателен.