# python dictionary
# 특징: 1) 항목의 순서를 따지지 않는다
2) 0 또는 1과 같은 오프셋으로 항목을 선택할 수 없다.
3) 대신, 값에 상응하는 고유한 키를 지정한다
4) 키는 대부분 문자열
5) 딕셔너리는 변경 가능, 키-값 요소를 추가, 삭제, 수정할 수 있음
representor = {
'name': '흑미',
'age' : 100,
'interets' : ['programming','game'],
'friends' : {
'name' : 'nana',
'id' : 'na123'
}
}
representor['name']
'흑미'
representor['friends']['name']
'nana'
# 예쁘게 출력
from pprint import pprint
pprint(representor)
{'age': 100,
'friends': {'id': 'na123', 'name': 'nana'},
'interets': ['programming', 'game'],
'name': '흑미'}
# representor 저장
fname = 'tmp/representor.json'
folder = fname.split('/')[0]
print(fname, folder)
tmp/representor.json tmp
# 저장하려는 path가 존재하지 않을 때
import os
print(os.path.exists(folder))
True
if not os.path.exists(folder):
os.makedirs(folder)
print('created %s' %folder)
# JSON 형식의 데이터 저장
# with open: 해당 구문이 끝나면 f.close() 자동으로 실행
import json
with open('tmp/representor.json', 'w', encoding='utf-8') as f:
json.dump(representor, f)
# JSON 파일 불러오기
with open(fname, encoding='utf-8') as f:
loaded_representor = json.load(f)
pprint(loaded_representor)
{'age': 100,
'friends': {'id': 'na123', 'name': 'nana'},
'interets': ['programming', 'game'],
'name': '흑미'}
# 새로운 정보 추가하기
representor['likes'] = ['coffee', 'drinks']
pprint(representor)
{'age': 100,
'friends': {'id': 'na123', 'name': 'nana'},
'interets': ['programming', 'game'],
'likes': ['coffee', 'drinks'],
'name': '흑미'}
# JSONObject에 어떤 key가 들어있는지 확인
print('representor keys:', representor.keys())
representor keys: dict_keys(['name', 'age', 'interets', 'friends', 'likes'])
print('representor ["friends"] keys:' representor['friends'].keys())
representor ["friends"] keys: dict_keys(['name', 'id'])
print('representor has age?:', 'age' in representor)
representor has age?: True
# JSONObject는 dict이기 때문에 존재하지 않는 key 입력시 에러
representor['wrong key']
Traceback (most recent call last):
File "C:\Users\joo\Desktop\딥러닝\selfStudy\day0\Day0_0.py", line 81, in <module>
representor['wrong key']
KeyError: 'wrong key'
# 이를 방지하기위해 dic.get('key', default value)를 이용해 default return value를 지정
representor.get('worng key', [])
'파이썬' 카테고리의 다른 글
_yield_len_iter (0) | 2017.08.29 |
---|---|
slice and sorting (0) | 2017.08.29 |
list comprehension (0) | 2017.08.28 |
Pickle (0) | 2017.08.28 |
마인크래프트로 배우는 파이썬 프로그래밍 (0) | 2017.08.25 |