Sólo un idiota puede ser totalmente feliz.
Mario Vargas Llosa
En los foros
Comentarios recientes
- Hola! vivo en China y esto
21 semanas 1 día atrás - David y Carlos:
O sea que,
23 semanas 2 días atrás - ¡Que tal amigos!; bien mi
23 semanas 2 días atrás - Estoy totalmente de acuerdo
25 semanas 17 horas atrás - Hace 2 dias me aventure en
31 semanas 5 días atrás - hola me interesa utilizar
31 semanas 6 días atrás - s una total pena que una
31 semanas 6 días atrás - Que tal Alexis. Llego con una
31 semanas 6 días atrás - hola ,yo tengo el servicio de
32 semanas 15 horas atrás - Pues a mi me da mas problemas
32 semanas 1 día atrás
Mi pequeño proyecto en Django y Facebook necesitaba procesar una cadena de texto en JSON. El objetivo es permitir a los usuarios copiar y pegar varios parámetros de configuración como una sencilla operación y evitar completar múltiples campos en un formulario. Hora de solicitar la ayuda de simplejson.
Empezamos con una prueba en la consola de Python, o mejor aún, iPython. Primero importamos el módulo:
import simplejson
Y ahora a definir una variable para el texto en JSON y pasarla a simplejson:
band = "{'name': 'Mando Diao', 'genre': 'rock and roll', 'bid': 19383}"
json = simplejson.loads(band)
El resultado es una excepción ValueError. Intentaré cambiando el orden de las comillas, simples para encerrar todo el texto y dobles para las claves y valores de JSON:
band = '{"name": "Mando Diao", "genre": "rock and roll", "bid": 19383}'
json = simplejson.loads(band)
Y ahora funciona, no hay error:
print json
{u'genre': u'rock and roll', u'bid': 19383, u'name': u'Mando Diao'}
Me parece un poco extraño pues siempre he usado ambos tipos de comillas en mi código Python sin problemas. ¿Habías notado este detalle con simplejson? No pude encontrar ningún comentario al respecto en la documentación.
Un último dato, el nuevo Python 2.6 incluye un módulo json, parece ser una adaptación de simplejson. Excelente.
Te recomiendo visitar
- Maestros del Web
- Dupermag
- Nudonation
- Alojamiento web Servicios de alojamiento web y registro de dominios para pymes y particulares.


Participa en la discusión
Lo que pasa es que el
Lo que pasa es que el formato json está definido para reconocer identificadores con comillas dobles únicamente (http://www.json.org/).
En el código fuente se puede ver que el parser sólo maneja casos para identificadores de comillas dobles
Una salida es definir
safeloads = lambda s: simplejson.loads(s.replace("'",'"'))
y usar eso a lo largo del código, aunque no he visto que sideeffects podría tener...
Correcto, valores en JSON solo con comillas dobles
Pasé por alto ese importante detalle en la documentación de JSON y asumí que la forma de uso de comillas era igual que en varios lenguajes de programación.
Gracias por el aporte.
Alexis Bellido