나는 간단 파일이 있습니다기본 파이썬 인코딩
# -*- coding: utf-8 -*-
a = u'Alegría'
print a
print {'a': a}
출력은 다음과 같습니다
Alegría
{'a': u'Alegr\xeda'}
는 이유는 무엇입니까을 대신의 : 사전에
Alegría
{'a': u'Alegría'}
감사합니다
나는 간단 파일이 있습니다기본 파이썬 인코딩
# -*- coding: utf-8 -*-
a = u'Alegría'
print a
print {'a': a}
출력은 다음과 같습니다
Alegría
{'a': u'Alegr\xeda'}
는 이유는 무엇입니까을 대신의 : 사전에
Alegría
{'a': u'Alegría'}
감사합니다
dict
님의 문자열 r epresentation은 키와 값에 대해 repr
을 호출하며, repr
은 파일 또는 인터프리터에 붙여 넣을 수있는 문자열 표현을 만들기 위해 최선을 다합니다. 인코딩은 선언되거나 인코딩이 지정되어 있고 객체를 다시 가져옵니다.
문자열은 괜찮습니다. 단지 안전한 표현입니다.
JSON에 직렬화하여 파일에 인쇄하려고했습니다. 나는 추악한 { 'a': u'Alegr \ xeda '}를 파일에 인쇄하고 있기 때문에 JSON이 repr과 비슷한 방식으로 작동한다고 생각합니다. 그것을 '{a': u'Alegría '}로 직렬화하는 법을 알겠습니까? 감사합니다 편집 : 나는 대답을 찾은 것 같아요 : http://stackoverflow.com/questions/4184108/python-json-dumps-cant-handle-utf-8 – Alex
JSON은 비 ASCII 문자와 문자열을 포함해서는 안됩니다. python dicts 표현은 유효한 JSON이 아닙니다. 키 'a'와 값'Alegría '를 가진 JSON 객체는 다음과 같이 보일 것입니다 :'{ "a": "Alegr \ u00eda"}'. 왜 직렬화 된 포맷이 당신에게 중요한가? 당신은 한 쪽 끝에'json.dump'를, 다른쪽에'json.load'를 놓고 당신이 버린 것을 정확히 얻습니다. –
나는 딕트를 파일에 덤핑하고, 손으로 편집하고, 마지막으로 자바 스크립트로로드하려고한다. 더 읽기 쉽기 때문에 쉽게 편집 할 수 있도록 멋지게 JSON 파일에 인쇄하는 것이 좋을 것입니다. – Alex
사전 인쇄는 문자열의 원시 내용을 인쇄하는 대신'repr'을 사용합니다. – Ryan