파이썬 기초

파이썬 json 딕셔너리 파일 저장 읽기 가져오기

코니코니 2023. 6. 24. 18:00
반응형

파이썬 json 딕셔너리 파일 저장 읽기 가져오기


파이썬을 사용하녀 json 파일을 다루기 위해서는 json 모듈을 사용할 수 있습니다. json은 파이썬에서 dict 형태로 쓰이는 키(key), 값(value)의 쌍으로 구성된 타입을 말합니다. 이 dict(딕셔너리) 형태의 json을 파일로 저장을 했다가 불러와서 사용을 하는 방법에 대해서 알아보도록 하겠습니다.

import json

test_js = {'test1': '문자열',
           'test2': 1000,
           'test3': [1, 2, 3, 4, 5],
           'test4': {'A': "hello"}}

# 아스키 코드 활성화
with open("test_js1.json", 'w', encoding='utf-8') as save:
    json.dump(test_js, save)

# 아스키 코드 비활성화
with open("test_js2.json", 'w', encoding='utf-8') as save:
    json.dump(test_js, save, ensure_ascii=False)

 

먼저 테스트로 test_js 변수를 만들어 줍니다. 내부에는 딕셔너리를 만들어서 넣어줬습니다. 이러한 딕셔너리 데이터를 저장할 때 두 가지 방법이 있는데 간단하게 아스키코드로 저장을 할 건지, 일반 텍스트로 저장을 할 건지를 정할 수 있습니다.

아스키코드화가 되었을 때와 안되었을 때의 차이는 아래에서 보여주도록 하고 파이썬 내에서 만들어진 딕셔너리를 json 파일로 저장을 시키기 위해서는 json 모듈을 불러와서 dump 함수를 사용하면 됩니다. 각각 test_js1, test_js2로 json 파일 저장을 진행하였고 아스키 코드 True, False 두 형태로 각각 저장을 하였습니다.

두 개의 json 파일이 저장되었는데 메모장으로도 json 파일을 열어볼 수 있습니다.

이렇게 메모장을 열여본 결과 각각 두 가지 형태의 json을 볼 수 있겠는데요. 좌측에 한글로 된 문자열이 이상한 코드로 변환되어 저장된 것이 아스키 코드화가 되어서 저장이 된 케이스입니다. 그리고 우측은 아스키코드를 비활성화시켰을 때 그대로 문자열이 저장된 것입니다.

 

결과적으로 "\ubb38\uc790\uc5f4" = "문자열" 이라는 것이 되겠죠.

import json


# 아스키 코드로 저장된 json 불러오기
with open("test_js1.json", 'r', encoding='utf-8') as save:
    data_load = json.load(save)

print(data_load)

==결과==
{'test1': '문자열', 'test2': 1000, 'test3': [1, 2, 3, 4, 5], 'test4': {'A': 'hello'}}

 

그러나 아스키 코드로 변환된 json 파일의 경우에 파이썬에서 불러왔을 때는 정상적으로 한글화가 된 상태로 불러오게 됩니다.

파이썬에서는 이 dict(딕셔너리)로 되어있는 자료형을 자주 쓰기 때문에 프로그램을 다음에도 실행했을 때 다시 불러와야 하는 경우가 있는 데이터가 있다면 dict 자료형으로 json 파일로 저장을 시키고 다시 불러오는 방법을 사용하는 것을 추천합니다.

반응형