을 보존 :파이썬 JSON 나는이 같은 파일이 인코딩
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
I을 키가 저장된 키와 같지 않으면 사전을 조회 할 수 없습니다.
편집 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
유니 코드 문자의 JSON 인코딩을보고 있습니다. * 정상입니다. 이것은 [RFC 4627 JSON] (http://www.ietf.org/rfc/rfc4627.txt?number=4627)과 완전히 호환됩니다 (2.5 절. 문자열 값 참조). –
Json에서 데이터를 올바르게 저장 중입니다. 유니 코드 문자열은 사용자가 제시 한 형식으로 변환됩니다. –
하지만 다시로드 할 때 전에 그대로 다시 변환합니다. – gcq