2012-08-12 5 views
5

Estoy usando la API de YouTube y estoy usando Python urllib2.urlopen() para enviar una solicitud GET. Luego paso el resultado a Javascript. (Estoy usando Django)No se puede encontrar una forma de escapar de las citas en json en la API de YouTube

Por lo tanto, algo como esto:

result = urllib2.urlopen('https://gdata.youtube.com/feeds/api/videos?'+query+'&max-results=1&alt=json') 

estoy usando jQuery para analizar la respuesta con formato JSON, sin embargo, algunos vídeos de YouTube/descripciones he comillas dobles y esto rompe la parseJSON() función.

Cualquier ayuda sería muy apreciada.

+2

datos de ejemplo? ¿Rastreos quizás? –

+0

por ejemplo ... {"test": "" material citado ""} ... esto no funcionaría, y ese es el tipo de resultado que devuelven algunos de los videos de Youtube. Hay citas internas que no se escapan, y esto rompe el analizador. – volk

+0

Goodie, JSON malformado. –

Respuesta

2

el error estaba en mi extremo (obviamente) ..el error comenzó con el hecho de que no me di cuenta de que Django escapa automáticamente de los caracteres HTML debido a la seguridad, y pirateé mi propia forma de ignorar caracteres HTML especiales como & quot ; que terminó malformando al json.

la solución fácil (en caso de que alguien utiliza Django y cada vez se encuentra con este problema) para escapar caracteres especiales de HTML es con {{var}} | seguras ..

+1

Django escapa en la entrada? suena como [comillas mágicas] (http://php.net/manual/en/security.magicquotes.php) síndrome. – Esailija

+1

@Esailija: No, en la salida. A menos que se indique lo contrario. –

+0

Ah, eso es totalmente diferente, lo siento. Es el escape en la entrada lo que es malo: P – Esailija

Cuestiones relacionadas