English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Python에서 JSON 형식

在Python中,有一个称为字典的容器。在字典中,我们可以将键映射到其值。使用字典可以在恒定时间内访问值。但是,如果不存在给定的键,则可能会发生一些错误。

在这一节中,我们将看到如何处理此类错误。如果我们尝试访问丢失的键,则可能会返回这样的错误。

예제 코드

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
print(country_dict['Australia'])
print(country_dict['Canada']) # This will return error

출력 결과

AU
---------------------------------------------------------------------------
KeyErrorTraceback (most recent call last)
<ipython-input-2-a91092e7ee85> in <module>()
      2 
      3 print(country_dict['Australia'])
----> 4 print(country_dict['Canada'])# This will return error
KeyError: 'Canada'

사용get()Method가 KeyError를 처리

我们可以说get方法来检查键。这个方法有两个参数。第一个是键,第二个是默认值。找到键后,它将返回与键相关联的值,但是当键不存在时,它将返回默认值,该默认值将作为第二个参数传递。

예제 코드

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
print(country_dict.get('Australia', '미找到'))
print(country_dict.get('Canada', '미找到'))

출력 결과

AU
미找到

사용setdefault()Method가 KeyError를 처리

메서드setdefault()메서드는 이와 유사합니다get()메서드는 두 개의 파라미터가 필요합니다. 예를 들어get()첫 번째는 키이고 두 번째는 기본 값입니다. 이 메서드의 유일한 차이점은 키가 없을 때 기본 값으로 새 키를 추가한다는 것입니다.

예제 코드

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
country_dict.setdefault('Canada', '미존재') # Canada에 기본 값을 설정
print(country_dict['Australia'])
print(country_dict['Canada'])

출력 결과

AU
미존재

defaultdict 사용

defaultdict는 컨테이너입니다. 그것은 Python의 collections 모듈에 위치합니다. defaultdict는 파라미터로 기본 공장을 사용합니다. 원래 기본 공장은 0(정수)으로 설정됩니다. 키가 없으면 기본 공장의 값을 반환합니다.

우리는 여러 번 메서드를 지정할 필요가 없으므로, 그것은 딕셔너리 객체에 더 빠른 메서드를 제공합니다.

예제 코드

import collections as col
# 'key not present' 문자열로 기본 공장 설정
country_dict = col.defaultdict(lambda: '키가 없음')
country_dict['India'] = 'IN'
country_dict['Australia'] = 'AU'
country_dict['Brazil'] = 'BR'
print(country_dict['Australia'])
print(country_dict['Canada'])

출력 결과

AU
키가 없음
Elasticsearch 튜토리얼