我有一个这样的文件:
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