본문 바로가기
Computer & Program/python

[python] dictionary <-> json

by TDRemon 2024. 1. 26.
반응형

안녕하세요. TDR입니다.

오늘은 python에서 형태가 유사한 Dictonary와 json 간의 변환 및 각 특징에 대해서 알아보겠습니다.

import json

## 변환용 dict 정의
dict_object = {'Key': 'Name', 'Value': 'Apple'}

## dict를 json으로 변환
# 만약 그냥 string으로 저장한다면
# json_object = '''{
#    "Key": "Name",
#    "Value": "Apple"
#}'''
json_object = json.dumps(dict_object)

## json format은 기본적으로 str 형으로 인식됨
print(type(dict_object))	# <class 'dict'>
print(type(json_object))	# <class 'str'>

## 딱 봐서는 큰 차이는 없지만 dict에서는 '(작은 따옴표)가
## json에서는 "(쌍 따옴표)로 바뀐 것을 확인할 수 있음
print(dict_object)	# {'Key': 'Name', 'Value': 'Apple'}
print(json_object)	# {"Key": "Name", "Value": "Apple"}

new_json_object = json_object.replace('Apple', 'Banana')

## json을 dict로 변환
new_dict_object = json.loads(new_json_object)

## 17 line에서 변경한 Banana 값으로 제대로 변환
print(type(new_dict_object))	# <class 'dict'>
print(type(new_json_object))	# <class 'str'>
print(new_dict_object)	# {'Key': 'Name', 'Value': 'Banana'}
print(new_json_object)	# {"Key": "Name", "Value": "Banana"}

json_object는 결국 string이기 때문에 replace()를 통해 값을 변경 할 수 있습니다. 문제는 json에 동일한 값이 여러개 있을 경우 해당 값들도 모두 변경 된다는 것입니다. 반면, dict의 경우 특정 값만을 지정해서 변경이 가능합니다. 관련한 내용은 아래 link를 참조 바랍니다.

 

[python] Dictionary

안녕하세요. TDR입니다. 오늘은 python에서의 dictionary(딕셔너리) 자료구조의 기본적인 것에 대해 정리해 보겠습니다. ## 생성 dic_object = {} dic_object = dic() dic_object = {'a': 1, 'b': 2, 99: 'nine'} ## 삽입 dic_obj

tdremon.tistory.com

위의 예시에서 본 dumps()와 loads() 말고 dump(), load()  함수도 있습니다.

## dump() 함수를 사용하여 파일에 쓰기
dict_obejct = {
    'name': 'John',
    'age': 30,
    'city': 'New York'
}

## dump()를 사용하여 dict object를 json format string으로 file로 저장
with open('temp.json', 'w') as file:
    json.dump(dict_obejct, file)
    

## load() 함수를 사용하여 파일에서 JSON 데이터를 읽어와 dict로 변환
with open('temp.json', 'r') as file:
	dict_obejct = json.load(file)
	print(dict_obejct)

위의 예시를 보면 아시겠지만, dumps(), loads()는 string 또는 dictonary 객체간 변환을 해주는 함수이고, dump(), load()는 dictonary 객체를 json format의 파일로 저장 또는 읽어 오는 함수입니다.

반응형

'Computer & Program > python' 카테고리의 다른 글

[python] String - 02  (0) 2024.01.31
[python] String - 01  (0) 2024.01.30
[python] map 함수  (1) 2024.01.25
[python] Dictionary  (0) 2024.01.24
[python] Copy (Shallow vs Deep)  (0) 2024.01.19

댓글