データをstdoutに印刷する際に問題があります。私はUnicodeとAsciiのコンセプトを理解していますが、なぜ印刷命令がうまくいかないのか分かりません。Unicode、stdoutへの印刷、何が起こっていますか?
コンピュータゲームのFallout ShelterのJSONファイルからデータを再生しています。
for i in jsondata["dwellers"]["dwellers"]:
print "{},{} {},{}".format(f,i["name"],i["lastName"],i["relations"])
私が取得エラー:
私はデータを印刷しよう
Traceback (most recent call last):
File "f:\FOSScript\Tree.py", line 81, in <module>
tree()
File "f:\FOSScript\Tree.py", line 76, in tree
graphing(jsondata)
File "f:\FOSScript\Tree.py", line 35, in graphing
print "{} {}".format(i["name"],i["lastName"])
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 3: ordinal not in range(128)
uは '\ XE9' フランスのアクセントです。
しかし、私はコードで:
prenom = u'Val\xe9rie'
print prenom
名が正しく印刷されます。
次の手順:
print locale.getpreferredencoding()
print sys.stdout.encoding
がプリント以下:
cp1252
cp850
(Wikipediaでチェックすると)両方のコードページでは、アクセント文字が含まれています。
フランス語版のWindows 10です。 Python 2.7.13。
==========================
なぜテーブルからの印刷がうまくいかないんが、印刷変数は機能しますか? thisページで
は、というコメントがあり
ザ・Pythonでのみサポートされるデフォルトのエンコーディングは以下のとおりです。
のPython 2.xの:ASCII
のPython 3.xの:UTF -8
ASCIIとは、アクセント付きの拡張ASCIIを意味しますか? JSONのデータにはアクセントが含まれていますが、Pythonは単にそれを印刷できません。
ありがとうございました!