[pyar] Agregar una nueva linea a archivo JSON
Nicolás Stefani
nicolas471 en openmailbox.org
Lun Nov 16 16:44:23 ART 2015
Gracias por las respuestas, ya lo pude realizar.
Saludos
El 16/11/15 a las 11:12, Ignacio Rossi escibió:
> Hola Nicolás,
>
> Un par de cosas que veo de pasada:
> json.dumps recibe un objeto y devuelve su representación JSON en un
> string. El método que escribe la representación JSON a un file handle
> es json.dump (sin s al final).
> Si abrís el archivo con 'r+', lees el contenido y después intentas
> escribir, va a empezar a escribir al final del archivo. Entonces al
> corregir el json.dump y correrlo, vas a ver que te duplica el
> contenido. Para evitar eso tenes que agregar un feedJson.seek(0)
> antes de escribir, o hacer dos open, uno con mode='r' para leer y otro
> con mode='w' para escribir borrando el contenido anterior.
> Una cosa importante para tener cuidado cuando usas el seek: eso no
> elimina el contenido anterior del archivo. Si lo que escribis es más
> corto que el contenido original, te queda basura al final del archivo.
> En tu caso no se ve porque siempre estás haciendo más grande el
> contenido. Hacer dos open, uno de lectura y otro de escritura, es más
> explícito y nunca vas a tener éste problema.
>
> Saludos
>
> Ignacio
>
> El 16 de noviembre de 2015, 10:31, <nicolas471 en openmailbox.org
> <mailto:nicolas471 en openmailbox.org>> escribió:
>
> Hola,
> Tengo un archivo JSON donde mapeo la ubicacion de hosts en
> diferentes pisos, con una estructura asi:
> [
> {
> "floor":"PB","hostName":"NICO","place":"PuestoNico"
> },
> ]
>
> El problema que tengo es que quiero agregar un nuevo objeto a pero
> no estoy pudiendo.
> Tengo esta funcion:
>
> def writeJson(floor, place, hostName):
>
> with open('hosts.json', mode='r+') as feedJson:
> feeds = json.load(feedJson)
> entry = {'floor': floor, 'hostName': hostName, 'place': place}
> feeds.append(entry)
> json.dumps(feeds, feedJson)
>
> Cuando finaliza el programa me muestra-"Process finished with exit
> code -1"- y en el archivo JSON no se escribe nada.
> Tambien probe con otros modos de open, pero nada.
>
> Si alguien me puede dar una mano, se lo agradezco
> Saludos
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar <mailto:pyar en python.org.ar>
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software
> Libre de Argentina - http://www.usla.org.ar
>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20151116/da33c9c2/attachment.html>
More information about the pyar
mailing list