반응형

파일 입출력을 할 때 사전타입을 키:값으로 입력하는 방법에 대해서 

1. str(dict) 을 사용하는 방법
2. json 모듈을 이용하는 방법

1번은 아주 쉬운 방법이라 금방 성공했지만 2번의 경우 파일을 파이썬에서 입출력을 할 때는 문제가 없었지만 저장된 파일을 열어보니 한글이 유니코드 형태로 출력되었다.

 

=============================== Python ===============================

import json

dict = {'555': '123'}

with open('file.txt', 'w', encoding='UTF-8') as file:

     file.write(json.dumps(dict))

 

 

'저장된 결과'

{"555": "w\u3141"}

 

=============================== Python ===============================

 

문제를 해결하기 위해

1. 저장하는 방식을 .txt, .json 둘 다 사용해봤지만 둘 다 유니코드 문제가 발생하였다.

2. 인코딩 방식의 문제라고 생각하여 UTF-8, EUC-KR, ANSI 등으로 해봤지만 동일한 문제가 발생하였다.

3. 그럼 마지막으로 .dumps() 메서드를 사용 할 때 무슨 방식이 있을까하고 찾아봤는데 답이 있었다.

 

 

=============================== Python ===============================

import json

dict = {'555': '내용'}

with open('j.json', 'w', encoding='UTF-8-sig') as file:

     file.write(json.dumps(dict, ensure_ascii=False))

 

'''

'저장된 결과'

{"555": "내용"}

 

 

=============================== Python ===============================

 

.dumps() 메서드를 쓸 때 ensure_ascii = False 를 입력하면 정상적으로 입력이 되었다.

 

출처 : https://datamod.tistory.com/104

반응형

+ Recent posts