2012-08-12 2 views
5

YouTube APIを使用していて、Pythonのurllib2.urlopen()を使用してGETリクエストを送信しています。それから私は結果をJavascriptに渡します。私はしかし、いくつかのYouTubeの動画/説明は二重引用符を持っており、これはparseJSONを壊し、JSON形式の応答を解析するためにjQueryを使用していYouTube APIでjsonの引用符をエスケープする方法が見つからない

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

:だから、このような何かを

を(私はジャンゴを使用しています) () 関数。

ご協力いただければ幸いです。

+2

例のデータ?おそらくトレースバック?例えば、 –

+0

... {"test": "quoted material" "} ...これはうまくいかず、Youtubeビデオの一部の結果が返されます。内部にはエスケープされていない引用符があり、これによってパーサが分割されます。 – volk

+0

Goodie、malformed JSON。 –

答えて

2

エラーが私の目的でした(明らかに)..エラーは、DjangoがセキュリティのためにHTML文字を自動的にエスケープすることを認識しなかったことから始まり、&のような特殊なHTML文字を無視する独自の方法をハッキングしました;それはジョソンを不正にしてしまった。

特殊なHTML文字をエスケープするための簡単な修正は(場合には、誰もがジャンゴを使用しており、これまでこの問題に実行されます){{VAR |安全}}と..です

+1

Djangoは入力時にエスケープしますか? [magic quotes](http://php.net/manual/ja/security.magicquotes.php)のようなものです。 – Esailija

+1

@Esailija:いいえ、出力します。特に断らない限り。 –

+0

ああ、まったく違うよ、ごめんなさい。それは邪悪なインプットでエスケープしています:P – Esailija

関連する問題