私はこのようなファイルを持っています:
aarónico
aaronita
ababol
abacá
abacería
abacero
ábaco
#more words, with no ascii chars
そのファイルを読み取ってコンソールに印刷すると、期待どおりにまったく同じように印刷されますが、次の場合に実行されます。
f.write(json.dumps({word: Lookup(line)}))
これは代わりに保存されます:
{"aar\u00f3nico": ["Stuff"]}
私が期待したとき:
{"aarónico": ["Stuff"]}
jason.loads()で同じものを取得する必要がありますが、どこでどのようにエンコードを行うか、またはそれを機能させるために必要かどうかがわかりません。
編集
これは、データをファイルに保存するコードです。
with open(LEMARIO_FILE, "r") as flemario:
with open(DATA_FILE, "w") as f:
while True:
word = flemario.readline().strip()
if word == "":
break
print word #this is correct
f.write(json.dumps({word: RAELookup(word)}))
f.write("\n")
そして、これはデータをロードし、辞書オブジェクトを返します。
with open(DATA_FILE, "r") as f:
while True:
new = f.readline().strip()
if new == "":
break
print json.loads(new) #this is not
キーが保存されたものと同じでない場合、辞書を検索できません。
編集2
>>> import json
>>> f = open("test", "w")
>>> f.write(json.dumps({"héllö": ["stuff"]}))
>>> f.close()
>>> f = open("test", "r")
>>> print json.loads(f.read())
{u'h\xe9ll\xf6': [u'stuff']}
>>> "héllö" in {u'h\xe9ll\xf6': [u'stuff']}
False