List append está sobrescribiendo mis valores anteriores [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Cambiar una lista cambia inesperadamente otra, también [duplicar] 5 respuestasEstoy tratando de construir dinámicamente una consulta para ElasticSearch, aquí está mi código:
import json
query_string = "person human"
query = {}
query['query'] = {}
query['query']['bool'] = {}
query['query']['bool']['must'] = {}
must_string = []
term_string = {}
term_string['term'] = {}
term_string['term']["labels.Name"] = ""
for term in query_string.split():
term_string['term']["labels.Name"] = term
must_string.append(term_string)
query['query']['bool']['must'] = must_string
print(json.dumps(query))
Esperaba una salida como esta:
{"query": {"bool": {"must": [{"term": {"labels.Name": "person"}}, {"term": {"labels.Name": "human"}}]}}}
pero en cambio estoy obteniendo esto:
{"query": {"bool": {"must": [{"term": {"labels.Name": "human"}}, {"term": {"labels.Name": "human"}}]}}}
Not el valor duplicado enlabels.Name
.
Hay un problema cuando agrego en la lista y se sobrescribe el valor anterior.