JSONを使用したUnicodeエラー

私は同様の質問が掲載されていることを知っているが、私は持っている問題は、それらに比べて少し異なると思う。私に同行してください。私は4ヶ月前にPythonを使い始めましたが、私の未熟さが分かると確信しています!

私はデンドログラムでProtovisプラグインを使用してCSVファイルからLinkedInデータを表示するプログラムを作成しています。プラグインは、私が見る限り、正しく設定されています。これは、すべて、O'ReillyのソーシャルWebマイニングに基づいています。しかし、IDLEでコードを実行すると、次のエラーメッセージが表示されます。

Traceback (most recent call last):
 File "C:/Users/Envy 15/Desktop/MASIDendo", line 115, in 
    html = open(HTML_TEMPLATE).read() % (json.dumps(json_output),)
  File "C:\Python27\lib\json\__init__.py", line 231, in dumps
    return _default_encoder.encode(obj)
  File "C:\Python27\lib\json\encoder.py", line 201, in encode
    chunks = self.iterencode(o, _one_shot=True)
  File "C:\Python27\lib\json\encoder.py", line 264, in iterencode
    return _iterencode(o, 0)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x96 in position 17: invalid start `byte`

今私が理解しているように、Unicodeエラーの理由は、ファイル名の1つに非Unicode文字があることです。しかし、私はそれらをチェックしましたが、そうではありません。それが指している私のコードの部分は次のとおりです。

html = open(HTML_TEMPLATE).read() % (json.dumps(json_output),)
f = open(os.path.join(os.getcwd(), 'out', OUT), 'w')
f.write(html)
f.close()

print 'Data file written to: %s' % f.name

# Open up the web page in your browser

webbrowser.open('file://' + f.name)

これについてのどんな助けも大いに評価されるでしょう!

1
スニペットの最初の行は、JSONを作成し、テンプレートをロードし、値を反復して最終的なHTMLを作成することです。これらを別々のステップに分割すると、何が起こっているのかをよりよく確認できます。
追加された 著者 Daniel Roseman,

2 答え

ベースを確認し、json_dataの内容を検証し、repr()またはpprint.pprint()を使用します。

str and unicode objects have methods encode and decode that accept errors argument, like this: "\x66\x89".decode("utf-8", "replace")

json.dumpsはデータをjsonにエンコードしますが、入力として json_output を渡すのは奇妙です。

2
追加された
そして私はあなたに感謝:)
追加された 著者 Dima Tisnek,
私はあなたの知恵を譲り受けました。
追加された 著者 nfirvine,

あなたの json_output オブジェクトのようなサウンドには、ユニコードまたはユニコードエンコードではない文字列が含まれています。それは問題のファイル名ではありません。

0
追加された
そんなに2つありがとう! qarmaの提案はよかった。私はprint repr(json_output)にこだわり、私のデータにあったすべての非ユニコード文字を私に渡しました。
追加された 著者 user1192309,
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript