python dict json 변환, json 읽기 쓰기
json 타입을 사용하기 위해서는 먼저 json package를 install 해야 합니다.
"import json" 을 입력해서 package를 찾을 수 없다고 에러가 뜬다면 설치해주세요
명령어 : conda install json or pip install json
1. dict to json 변환
- dict 타입, json 타입 모두 key, value로 이루어져 있는 데이터 타입 입니다.
그렇기에 python의 json package를 이용하시면 쉽게 변환이 가능합니다.
# dict type 데이터 만들기
dict_a = {"a" : 10, "b" :20}
type(dict_a)
dict # 출력 값
print(dict_a)
{'a': 10, 'b': 20} #출력 값
- json.dumps 라는 명령어를 통해 dict 타입을 json 형식으로 변경 가능 합니다.
- json 형식으로 변경된 데이터는 str(string) 타입 입니다.
# dict to json 변환
import json
json_a = json.dumps(dict_a)
print(json_a)
{"a": 10, "b": 20} # 출력 값
type(json_a)
str # 출력 값
2. json to dict 변환
- json 형식의 str은 당연히 dict 타입으로 변환이 가능합니다.
- json 형식의 str을 json.loads 라는 함식을 통해 읽어오면 dict 타입으로 변환이 가능합니다.
# json 형식 str 만들기
json_str = '{"a": 10, "b": 20}'
print(json_str)
{"a": 10, "b": 20} # 결과 값
# json 형식에서 dict로 변환
dict_b = json.loads(json_str)
print(dict_b)
{'a': 10, 'b': 20} # 결과 값
# dict 타입이므로 key로 접근 가능
print(dict_b['a'])
10 # 결과 값
3. json file로 쓰기, 읽기
- with open 문을 사용하면 option 에 'w', 'r'를 통해서 파일에 읽고 쓰기고 가능합니다.
※ open 만 사용해도 파일 읽기, 쓰기가 가능하나, 사용 후 file close를 실행하지 않아도 되기 때문에 with open을 사용하는걸 추천 드립니다.
# json file에 쓰기
dict_a = {'a': 'abcd', 'b':1234}
import json
json_a = json.dumps(dict_a)
with open('json_a.json', 'w') as json_file :
json.dump(json_a, json_file)
- json_a.json 이라는 파일이 생성되고, 내용을 보면 '{"a": "abcd", "b": 1234}' 이렇게 기록 되어 있음을 확인 할 수 있습니다.
# json file 읽기
with open('json_a.json', 'r') as json_read :
json_str = json.load(json_read) # json.load 로 파일 읽기
type(json_str)
str # 출력값
# str 타입인 json_str을 dict로 변환하기
json_dict = json.loads(json_str)
print(json_dict)
{'a': 'abcd', 'b': 1234} # 출력 값
type(json_dict)
dict # 타입 출력
- json.load(파일)를 통해서 json 파일을 읽어 올 수 있습니다.
- 읽어 온 파일은 str 타입이기 때문에 key를 통해 접근 하려면 dict 타입으로 변형해야 합니다.
- dict 타입으로 변경할 때는 json.loads(str)를 통해 가능합니다.
※ load, loads 를 잘 구분해서 사용해야 합니다.
load : 파일에서 읽어 올 떄 사용
loads : json 형태의 str을 dict 타입으로 변경하기 위해 사용