[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