Completion over Perfection

파이썬 - 딕셔너리 안의 리스트에서 특정 키 값만 가져오기 본문

파이썬 (Python)

파이썬 - 딕셔너리 안의 리스트에서 특정 키 값만 가져오기

난차차 2020. 6. 10. 18:29
반응형

파이썬 Python - 딕셔너리 Dictionary 안의 리스트 List 에서 특정 키 Key 값만 가져오기

 

파이썬으로 개발을 하다보면 JSON형태로 데이터를 받아올 때가 많다. 

특히 API 요청 이후 딕셔너리 dictionary 로 값들이 반환되는 경우가 있는데, 굉장히 복잡한 형태를 띄는 경우가 많다. 

 

예를 들자면 아래와 같은 딕셔너리 dictionary 들이 반환된다. 

 

alist = {'키1':['값1', '값2'], '키2':['값3', '값4'], '키3':['값5', '값6']}

 

딕셔너리 dictionary 안에 키 key 값들이 3개 들어있고, 각각 키 key 에 대응하는 값 value들이 2개씩 존재한다. 

이때 값 value들은 리스트 list의 형태를 띄고 있다.  

 

위와 같은 상황에서 나는 '키1'의 '값1'만을 가져와서 출력하고 싶을 때가 있다. 

 

먼저 alist가 어떤 키 key 들을 가지고 있는지 출력해보자. 

 

어떤 키들이 있는지 출력되었다.

 

alist 안에는 '키1' '키2' '키3' 라는 키 key 들이 들어있음을 알 수 있다. 

 

그럼 이 상황에서 '키1'의 첫번째 값인 '값1'을 출력해보자. 

 

처음에 나는 당연히 '키1'에서 첫번째 값이니까 뒤에 [0]을 붙이면 될 줄 알았다.

아래처럼 말이다.

 

에러..

 

이는 dict_keys라는 데이터가 리스트가 아니기때문에 에러가 나는 것이다.

 

리스트로 한번 변환해준 뒤에 출력하면 정상적으로 출력되는것을 볼 수 있다. 

 

alist.keys()를 리스트형으로 바꿔주자

이제 키1을 어떻게 뽑아내는지 알았으므로 값1을 추출해보자!

코드가 복잡해질 수 있으므로 아래와 같이 target_key라는 변수를 선언해서 키1이 들어가도록 해주자. 

 

 

이제 값1을 추출하려면 아래와 같이 get 메서드를 활용하면 된다. 

 

값1은 첫번째값이므로 뒤에 [0]을 붙여준다

 

 

파이썬에서는 기본적으로 딕셔너리 dictionary 형태의 자료는 키 key 값을 알아야 값 value 을 구할 수 있도록 되어있다. 

 

하지만 만약 내가 제공받은 딕셔너리 dictionary 에서 어떤 키 key 가 들어가 있는지를 모르겠고,

첫번째 키 key 에 들어있는 리스트 중에서 첫번째 값 value 이 필요하다 라는 사실만 안다고 가정했을 때,

위와 같이 코드를 짜면 바로 구할 수 있다.

 

 

 

 

반응형
Comments