[Python]중첩 Dict의 사용예제

중첩된 Dict의 사용예제를 확인해보자.

  1. 조회하기
d = {"group1":[
                {'name': 'Park', 'age': '32', 'sex': 'Male'},
                {'name': 'Cho', 'age': '44', 'sex': 'Female'},
                {'name': 'Kang', 'age': '39', 'sex': 'Female', 'married': 'No'}
              ],
     "group2":[
                {'name': 'Kim', 'age': '23', 'sex': 'Male', 'married': 'Yes'},
                {'name': 'Lee', 'age': '37', 'sex': 'Male', 'married': 'No'}
              ],
     "type" : {"a": "employee", "b": "officer", "c": "director", "d": "manager", "e": "service provider"}
    }


# 방법1 : key가 존재하지 않으면, 예외가 발생한다.
person = d['group2'][0]
job =  d['type']['b']
print(f'name = {person["name"]}, Age = {person.get("age")}, Type = {job}')


# 방법2 : get 으로 접근 시 key가 존재하지 않으면, None가 반환된다.
person = d.get('group2')[0]
job =  d.get('type').get('b')
print(f'name = {person["name"]}, Age = {person.get("age")}, Type = {job}')

## 결과
name = Kim, Age = 23, Type = officer
name = Kim, Age = 23, Type = officer

2. 추가/수정하기

d = {"group1":[
                {'name': 'Park', 'age': '32', 'sex': 'Male'},
                {'name': 'Cho', 'age': '44', 'sex': 'Female'},
                {'name': 'Kang', 'age': '39', 'sex': 'Female', 'married': 'No'}
              ],
     "group2":[
                {'name': 'Kim', 'age': '23', 'sex': 'Male', 'married': 'Yes'},
                {'name': 'Lee', 'age': '37', 'sex': 'Male', 'married': 'No'}
              ],
     "type" : {"a": "employee", "b": "officer", "c": "director", "d": "manager", "e": "service provider"}
    }


# 방법1
d.get('group1').append({'name': 'Jung1', 'age': '22', 'sex': 'Male', 'married': 'Yes'})
d.get('type')['f'] = 'engineer'

# 방법2
d.get('group1').append({'name': 'Jung2', 'age': '22', 'sex': 'Male', 'married': 'Yes'})
d.get('type').update(f='engineer')

# 방법3
d.get('group1').append({'name': 'Jung3', 'age': '22', 'sex': 'Male', 'married': 'Yes'})
d.get('type').update({'f':'engineer'})

print(d)

## 결과
{'group1': [{'name': 'Park', 'age': '32', 'sex': 'Male'}, {'name': 'Cho', 'age': '44', 'sex': 'Female'}, {'name': 'Kang', 'age': '39', 'sex': 'Female', 'married': 'No'}, {'name': 'Jung1', 'age': '22', 'sex': 'Male', 'married': 'Yes'}, {'name': 'Jung2', 'age': '22', 'sex': 'Male', 'married': 'Yes'}, {'name': 'Jung3', 'age': '22', 'sex': 'Male', 'married': 'Yes'}], 'group2': [{'name': 'Kim', 'age': '23', 'sex': 'Male', 'married': 'Yes'}, {'name': 'Lee', 'age': '37', 'sex': 'Male', 'married': 'No'}], 'type': {'a': 'employee', 'b': 'officer', 'c': 'director', 'd': 'manager', 'e': 'service provider', 'f': 'engineer'}}

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다