인프런 커뮤니티 질문&답변

이희동님의 프로필 이미지
이희동

작성한 질문수

처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part2]

JSON 포맷 이해와 파이썬으로 JSON 파일 다루기 질문

해결된 질문

작성

·

157

0

위 캡쳐본에서 "language" : {"Java" : "basic", "Java" : "advance"} 라고 작성 시

출력 부분에서 "language" : {"Java" : "advance"}만 출력이 됩니다.

 

"language" : {"Java" : "basic", "Java2" : "advance"}라고 작성 시

출력 부분에서 "language" : {"Java" : "basic", "Java2" : "advance"}가 출력됩니다.

 

전자의 경우는 Java값이 업데이트 되었다고 인식되어 advance만 출력이 되는건가요?

 

 

답변 1

0

안녕하세요. 답변 도우미입니다.

네, 맞습니다! Python의 딕셔너리에서 키는 유일해야 합니다. 따라서 "Java": "basic", "Java": "advance"와 같이 같은 키를 두 번 사용하면, 뒤에 오는 값으로 앞의 값을 덮어쓰게 됩니다. 이것이 왜 "Java": "advance"만 출력되는 이유입니다.

두 번째 예시에서는 "Java""Java2"라는 두 개의 다른 키를 사용했기 때문에 두 값이 모두 딕셔너리에 포함되어 출력됩니다.

따라서, 키가 중복되면 마지막에 지정된 값으로 덮어쓰기가 되므로 주의해야 합니다. 만약 여러 값을 같은 키에 저장하고 싶다면, 리스트나 다른 딕셔너리 등을 값으로 사용할 수 있습니다. 예를 들면:

"language": {"Java": ["basic", "advance"]}

이렇게 하면 "Java" 키에 대한 여러 가지 레벨을 리스트로 관리할 수 있습니다.

감사합니다.

 

이희동님의 프로필 이미지
이희동

작성한 질문수

질문하기