Luego de mucho batallar pudimos encontrar la contestación de esta contrariedad que muchos lectores de este espacio han tenido. Si tienes algún detalle que aportar puedes compartir tu conocimiento.
Solución:
No guardó los datos modificados en absoluto. Primero debe cargar, luego modificar y solo luego guardar. No es posible modificar los archivos JSON en el lugar.
with open('my_file.json', 'r') as f:
json_data = json.load(f)
json_data['b'] = "9"
with open('my_file.json', 'w') as f:
f.write(json.dumps(json_data))
También puede hacer esto:
with open('my_file.json', 'r+') as f:
json_data = json.load(f)
json_data['b'] = "9"
f.seek(0)
f.write(json.dumps(json_data))
f.truncate()
Si desea que sea seguro, primero escriba los nuevos datos en un archivo temporal en la misma carpeta y luego cambie el nombre del archivo temporal al archivo original. De esa manera, no perderá ningún dato, incluso si sucede algo en el medio.
Si piensa en eso, los datos JSON son muy difíciles de cambiar en el lugar, ya que la longitud de los datos no es fija y los cambios pueden ser bastante significativos.
Ya casi llegas, solo tienes que escribir el actualizado json_data
volver al archivo. Deshacerse de f.close()
como el with
declaración se asegurará de que el archivo está cerrado. Entonces, emite
with open('my_file.json', 'w') as f:
f.write(json.dumps(json_data))
Aquí tienes las comentarios y valoraciones
Recuerda que puedes mostrar esta crónica si te ayudó.