Las mejores prácticas a un lado, ¿hay una razón de peso no para hacer esto?Ejecutando JSON a través de la evaluación de Python()?
Estoy escribiendo un enganche post-commit para usar con un proyecto de Google Code, que proporciona datos de confirmación a través de un objeto JSON. GC proporciona un token de autenticación HMAC junto con la solicitud (fuera de los datos JSON), por lo que al validar ese token obtengo una gran confianza en que los datos JSON son a la vez benignos (ya que no tiene sentido desconfiar de Google) y son válidos.
Mis propias (breves) investigaciones sugieren que JSON pasa a ser completamente válido Python, con la excepción de la secuencia de escape "\/"
, que GC no parece generar.
Así que, como estoy trabajando con Python 2.4 (es decir, no hay ningún módulo json
), eval()
está buscando realmente tentador.
Editar: Para que conste, yo soy mucho no preguntando si esto es una buena idea. Estoy bastante consciente de que no lo es, y dudo mucho que alguna vez use esta técnica para proyectos futuros, incluso si termino usándolo para este. Solo quería asegurarme de saber con qué tipo de problemas me encontraré si lo hago. :-)
+1 por "falla en un caso de borde oscuro ". Usted también hace un buen punto acerca de Unicode. Estoy bastante seguro de que no es relevante para mi caso de uso particular, pero eso es algo que no había considerado antes. –
Interesante; Podría haber jurado que probé códigos de escape \ uXXXX y los hice funcionar. Probándolos ahora, fallan tal como se muestra aquí. Debo haber estado alucinando. ^.^ –
también si usa las aceleraciones C, entonces simplejson puede devolver una combinación de cadena y unicode, que parece que no tiene interés en solucionarlo - http://code.google.com/p/simplejson/issues/detail? id = 40 –