# 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

+ Recent posts