def update_json_data(dict_node, name_file, node, path=None):
"""
actualiza el json_data de un fichero con el diccionario pasado
@param dict_node: diccionario con el nodo
@type dict_node: dict
@param name_file: Puede ser el nombre de un canal o server (sin incluir extension)
o bien el nombre de un archivo json (con extension)
@type name_file: str
@param node: nodo a actualizar
@param path: Ruta base del archivo json. Por defecto la ruta de settings_channels.
@return result: Devuelve True si se ha escrito correctamente o False si ha dado un error
@rtype: bool
@return json_data
@rtype: dict
"""
logger.info()
from core import config
from core import filetools
json_data = {}
result = False
if not name_file.endswith(".json"):
name_file += "_data.json"
if not path:
path = filetools.join(config.get_data_path(), "settings_channels")
fname = filetools.join(path, name_file)
try:
data = filetools.read(fname)
dict_data = load_json(data)
# es un dict
if dict_data:
if node in dict_data:
logger.debug(" existe el key %s" % node)
dict_data[node] = dict_node
else:
logger.debug(" NO existe el key %s" % node)
new_dict = {node: dict_node}
dict_data.update(new_dict)
else:
logger.debug(" NO es un dict")
dict_data = {node: dict_node}
json_data = dump_json(dict_data)
result = filetools.write(fname, json_data)
except:
logger.error("No se ha podido actualizar %s" % fname)
return result, json_data
评论列表
文章目录