2017-01-21 2 views
0

에서 JSON으로 "\ U를 **"저장 방법 :제대로 나는 사전이 파이썬

import json 
print json.dumps(data) 

내가 가진 : 내가 JSON에 있음을 덤프 동안

data = {"data": "\u512b"} 

{"a":"\\u512b"} 어떻게해야 정확히 {"a":"\u512b"}을 얻으려고합니까?

참고 : 나는

+0

당신은 '나는 문자열 앞에 u를 추가하려고 노력한다. 왜 나에게 말해줘?',이 문장을 이해하지 못한다. – hansaplast

+1

또한'json.dump (data)'가 작동하지 않는다. 'json.dump'는 객체와 파일 포인터 인 두 개의 매개 변수를 기대합니다. – hansaplast

+0

http://stackoverflow.com/questions/2828284/conversion-of-strings-like-uxxxx-in-python –

답변

0

당신은 몇 가지 해킹을 할 수있는 이유도 말해주십시오, 그것은 u'\u512b'가되어 여분의 \ 다시 표시하지 않도록 문자열 전에 u를 추가하려고합니다.

import json 

data = {"data": "\u512b"} 
s = json.dumps(data) 
print(s.replace(r'\u', 'u')) 
print(type(s.replace(r'\u', 'u'))) 

출력 :

{"data": "\u512b"} 
<type 'str'> 
0

내 생각 엔 당신이 당신에게 자신의 \ 이스케이프 문자로 json.dumps 생성 된 문자열을 표시, 파이썬 인터프리터의 출력에 의해 혼란에 \ 문자 앞에 추가된다는 것입니다 문자열.

>>> s = "s\\u" 
>>> s 
's\\u' 
>>> print(s, len(s)) # length of s is 3, not 4 
s\u 3 

HTH를 다음의 예와 같이

>>> data = {"data": "\u512b"} 
>>> data 
{'data': '\u512b'} 
>>> import json 
>>> json.dumps(data) 
'{"data": "\\u512b"}' 
>>> print(json.dumps(data)) 
{"data": "\u512b"} 
>>> json.dump(data, open('data.json', 'w')) 
>>> ^Z 
C:\opt\Console2>type data.json 
{"data": "\u512b"} 

이 사실 JSON 완전히 독립적 인 : 값이 같은 JSON 문자열은 (IIUC) 원하는대로, 정확히 하나의 \를 포함하고 있습니다!

관련 문제