Tengo una lista, que puede estar vacía o no.Obligar a json a volcar un objeto json incluso cuando la lista está vacía
Quiero crear un nuevo archivo que contenga esa lista en un formato que sea legible por el ser humano y fácil de analizar para mi próximo script. En el caso en que la lista no esté vacía, esto funciona bien y mi próximo script se lee en el archivo json. Pero cuando la lista está vacía, obtengo "ValueError: ningún objeto JSON podría decodificarse". Esto tiene sentido, porque cuando abro el archivo, de hecho no hay contenido y, por lo tanto, no hay objeto JSON.
Estoy de acuerdo con el hecho de que algunas listas están vacías. Entonces, o quiero escribir un objeto JSON vacío o quiero que mi script de lectura esté bien sin encontrar un objeto JSON.
Aquí está el código correspondiente:
guionista
favColor = [] OR favColor = ['blue'] OR favColor = ['blue', 'green']
fileName = 'favoriteColor.json'
outFile = open(fileName, 'w')
json.dump(outFile, favColor)
outFile.close()
lector de guiones
fileName = 'favoriteColor.json'
inFile = open(fileName, 'r')
colors = json.load(inFile)
inFile.close()
Cualquier ayuda o sugerencia muy apreciados. Si necesito proporcionar más razones de por qué estoy haciendo esto, también puedo proporcionarlo, solo pensé que comenzaría con el mínimo necesario para comprender el problema.
Agradable y limpio +1 –
Gracias, muy apreciado, y una buena explicación de por qué es preferible "con abrir() como ...". He escuchado a la gente decir que es preferible antes, pero sin la razón nunca me hizo cambiar. – rcorty