YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← Json Escaping - CS253 Unit 5 - Udacity

Get Embed Code
2 Languages

Showing Revision 1 created 03/11/2014 by Fran Ontanaya.

  1. しかしHTMLではHTMLコンテンツを
  2. エスケープしなければなりませんでした
    ブラウザでレンダリングされるでしょうか?
  3. それについてはレッスン2で話しました
  4. JSONにも同様の問題があります JSONのBLOBがあって
  5. storyというキーを取る辞書で
  6. それを文字列にマップします これは有効なJSONです
  7. キーと値はそれぞれダブルコーテーションで囲まれます
  8. 値にダブルコーテーションを含むにはどうするでしょう
  9. ダブルコーテーションを入力しただけでは
  10. これは無効です この引用符が文字列の最後にあって
  11. そのあとに不要なデータがあるからです
    必要なのはカンマと
  12. 波括弧です 不要なものがあるとすべて台無しです
  13. 私たちのターミナルでこれを使ったらどうなるか
  14. 見てみましょう 今読み込んだJSON文字列を使います
  15. これは正しく機能します Python文字列を使いますが
  16. この部分はJSON文字列です
  17. Pythonに送るものでシングルコーテーションで囲みます
  18. Pythonでは文字列を表すのにシングルコーテーションも
  19. ダブルコーテーションも使えましたね
  20. ですからここではシングルコーテーションを使い
  21. JSONではダブルコーテーションを使えば問題ありません
  22. 私がエディタでやったように
  23. このpをダブルコーテーションに変えると
    すべてダメになります
  24. JSONのパーサには嫌われました
  25. ここから逃れるにはこのダブルコーテーションの前に
  26. バックスラッシュを入れます Pythonでこの記号を
  27. エスケープするためですが結果としては
  28. 元の文字列と同じものです
  29. これをPythonで動作させるには
    バックスラッシュとダブルコーテーション両方を
  30. エスケープしなければなりません
    このバックスラッシュは
  31. Pythonがエスケープするもので
  32. 文字列にバックスラッシュを入れたのはそのためです
  33. JSONインタプリタはバックスラッシュを問題にせず
    ダブルコーテーションも含みます
  34. これを実行すると結果はこうなります
  35. これをPythonで行う別の方法はもう少し単純で
    バックスラッシュを2つ使います
  36. 少し紛らわしいですが文字列の前にrを起き
  37. rはraw文字列を表していてPythonは
  38. Pythonのためにしているエスケープを無視し
  39. JSONモジュールはバックスラッシュを読み取ります
    これを実行すると
  40. 値にダブルコーテーションを含んで動作します
  41. つまり答えは
    もし値にダブルコーテーションがあったら
  42. その直前にバックスラッシュを
    そして以前あったuを入れます
  43. つまりダブルコーテーションをエスケープするために
  44. バックスラッシュを使いましたが
    JSONでは読み込めません
  45. 私たちが読み込むJSONが有効だからです
  46. もし有効でなければJSONモジュールは
  47. 読み込むと例外を表示します