Django テンプレートに渡すdictのkeyの文字列に'$'は使えない

GAEでYouTubeのAPIを使用して動画検索を行うコードを書いてたんですが、その時に結果を表示するのにDjango テンプレートを使うことにした。
取得した内容はテンプレート側でどうこうした方がラクだろうと安易に考えたんですが、JSON形式で結果を取得すると、keyの文字列の中に'$'が入ってるんですよ。
どうもこれがテンプレート側では使っちゃいけない文字のよう。



例えば、YouTubeのAPIで動画検索を行い、返ってきたJSON形式の結果から動画のタイトルを取得するには以下のようにする。

for e in feed['entry']:
  title = e['media$group']['media$title']['$t']
これをテンプレートで取得しようとするとエラーになる。(οдО;)
{% for e in feed.entry %}
  <h4>{{ e.media$group.media$title.$t' }}</h4>

「使っちゃいけない文字があるなんて聞いてませんけど( ̄д ̄)エー」と言ったところでどうしようもないので、一旦必要な値だけを抜き出してそれをテンプレートに渡してやることで解決した。

ごにょごにょするのが面倒なのでそのままテンプレートに投げちゃえって言う発想がかえって回り道となる結果になってしまった。(>_<)

Python Client Libraryも使ってみた

Python Client Libraryを使うと少しだけ楽にYouTubeの動画検索を行えるのだがしかし、プレイヤーURLを『entry.media.content[0].url』または『entry.GetSwfUrl()』という形で取得しなければならないので、結局 Python Client Library を使用しても結果をテンプレート側にスコッと投げてしまうことは出来なかった。

手抜きを許さないYouTubeのAPIウザス。

0 Comments:

Recent Posts