Представленные в материале методы словаря python-benedict
являются обертками метода dict.get()
, они анализируют данные, пытаясь вернуть их в ожидаемом виде.
from benedict import benedict from datetime import date # ДАТА data = {'d': '10/10/2023', 'd1': '2023-10-5'} d = benedict(data) d.get_date('d') # datetime.date(2023, 10, 10) # дата входит в `choices` d.get_date('d', format='%d/%m/%Y', default=date(2023, 10, 1), choices=[date(2023, 10, 9), date(2023, 10, 10)]) # datetime.date(2023, 10, 10) # дата не входит в `choices` d.get_date('d1', format='%Y-%m-%d', default=date(2023, 10, 1), choices=[date(2023, 10, 9), date(2023, 10, 10)]) # datetime.date(2023, 10, 1) # СПИСОК ДАТ data = {'d': '5/10/2023,10/10/2023'} >>> d = benedict(data) >>> d.get_date_list('d', format='%d/%m/%Y') # [datetime.date(2023, 10, 5), datetime.date(2023, 10, 10)] # ЧИСЛА data = {'d': '202'} d = benedict(data) d.get_float('d') # 202.0 # СПИСОК ЧИСЕЛ data = {'d': '202.3, 15, 15.9, один'} d = benedict(data) d.get_float_list('d') # [202.3, 15.0, 15.9, None]
Benedict.get_bool()
возвращает значение bool
,Benedict.get_bool_list()
возвращает список значений bool
,Benedict.get_date()
возвращает объект datetime.date
,Benedict.get_date_list()
возвращает список объектов datetime.date
,Benedict.get_datetime()
возвращает объект datetime.datetime
,Benedict.get_datetime_list()
возвращает список объектов datetime.datetime
,Benedict.get_decimal()
возвращает объект decimal.Decimal
,Benedict.get_decimal_list()
возвращает список объектов decimal.Decimal
,Benedict.get_dict()
возвращает объект dict
,Benedict.get_email()
проверяет валидность и возвращает email,Benedict.get_float()
возвращает объект float
,Benedict.get_float_list()
возвращает список объектов float
,Benedict.get_int()
возвращает объект int
,Benedict.get_int_list()
возвращает список объектов int
,Benedict.get_list()
возвращает объект list
,Benedict.get_list_item()
возвращает значение индекса в списке,Benedict.get_str()
возвращает объект str
,Benedict.get_str_list()
возвращает список объектов.Benedict.get_bool(key, default=False)
:Метод Benedict.get_bool()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его как значение bool
.
key
не существует, а default
не определено, то возвращается None
.key
не может быть интерпретировано, то возвращается значение default
.Такие значения, как 1
, true
, yes
, on
, ok
, будут возвращены как True
.
Benedict.get_bool_list(key, default=[], separator=",")
:Метод Benedict.get_bool_list()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде списка значений bool
.
Аргумент default
должен быть списком объектов bool
.
key
не существует, а default
не определено, то возвращается None
.separator
и значение является строкой, то она будет разделена по separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается значения, указанное в default
.Такие значения, как 1
, true
, yes
, on
, ok
, будут возвращены как True
.
Benedict.get_date(key, default=None, format=None, choices=[])
:Метод Benedict.get_date()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его как объект datetime.date()
.
Аргумент choices
должен быть списком объектов datetime.date
.
key
не существует, а default
не определено, то возвращается None
.choices
, а преобразованное значение ключа key
совпадает с любым значением из choices
, то возвращается преобразованное значение ключа, иначе возвращается значение default
или None
, если default
не определено.format
не указана (формат в котором записаны значения ключей), то модуль benedict
постарается определить его автоматически.data = {'d': '10/10/2023', 'd1': '2023-10-5'} d = benedict(data) d.get_date('d') # datetime.date(2023, 10, 10) # дата входит в `choices` d.get_date('d', format='%d/%m/%Y', default=date(2023, 10, 1), choices=[date(2023, 10, 9), date(2023, 10, 10)]) # datetime.date(2023, 10, 10) # дата не входит в `choices` d.get_date('d1', format='%Y-%m-%d', default=date(2023, 10, 1), choices=[date(2023, 10, 9), date(2023, 10, 10)]) # datetime.date(2023, 10, 1)
Benedict.get_date_list(key, default=[], format=None, separator=",")
:Метод Benedict.get_date_list()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде списка объектов datetime.date()
.
Аргумент default
должен быть списком объектов datetime.date
.
key
не существует, а default
не определено, то возвращается None
.format
не указана (формат в котором записаны значения ключей), то модуль benedict
постарается определить его автоматически.separator
и значение key
является строкой, то она будет разделена по значению separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается значение [None]
.from benedict import benedict from datetime import date data = {'d': '5/10/2023,10/10/2023'} d = benedict(data) # зададим формат даты d.get_date_list('d', format='%d/%m/%Y') # [datetime.date(2023, 10, 5), datetime.date(2023, 10, 10)] # автоматическое распознавание даты, обратите # внимание как интерпретировалась первая дата d.get_date_list('d') # [datetime.date(2023, 5, 10), datetime.date(2023, 10, 10)]
Benedict.get_datetime(key, default=None, format=None, choices=[])
:Метод Benedict.get_datetime()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его как объект datetime.datetime()
.
Аргумент choices
должен быть списком объектов datetime.datetime
.
key
не существует или не может быть интерпретировано, а default
не определено, то возвращается None
.choices
, а преобразованное значение ключа key
совпадает с любым значением из choices
, то возвращается преобразованное значение ключа, иначе возвращается значение default
или None
, если default
не определено.format
не указана (формат в котором записаны значения ключей), то модуль benedict
постарается определить его автоматически.Пример использования аналогичен методу Benedict.get_date()
.
Benedict.get_datetime_list(key, default=[], format=None, separator=",")
:Метод Benedict.get_datetime_list()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде списка объектов datetime.datetime()
.
Аргумент default
должен быть списком объектов datetime.datetime
.
key
не существует, а default
не определено, то возвращается None
.format
не указана (формат в котором записаны значения ключей), то модуль benedict
постарается определить его автоматически.separator
и значение key
является строкой, то она будет разделена по значению separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается значение [None]
.Пример использования аналогичен методу Benedict.get_date_list()
.
Benedict.get_decimal(key, default=Decimal("0.0"), choices=[])
:Метод Benedict.get_decimal()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его как объект decimal.Decimal
.
Аргумент choices
должен быть списком объектов decimal.Decimal
.
key
не существует или его значение не может быть интерпретировано, а default
не определено, то возвращается None
.choices
, а преобразованное значение ключа key
совпадает с любым значением из choices
, то возвращается преобразованное значение ключа, иначе возвращается значение default
.Benedict.get_decimal_list(key, default=[], separator=",")
:Метод Benedict.get_decimal_list()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде списка объектов decimal.Decimal
.
Аргумент default
должен быть списком объектов decimal.Decimal
.
key
не существует, а default
не определено, то возвращается None
.separator
и значение key
является строкой, то она будет разделена по значению separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается значение [None]
.Benedict.get_dict(key, default={})
:Метод Benedict.get_dict()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде объекта словаря dict
.
key
не существует или его значение не может быть интерпретировано, а default
не определено, то возвращается None
.json
, то оно будет автоматически декодировано python-benedict
.Benedict.get_email(key, default="", choices=None, check_blacklist=True)
:Метод Benedict.get_email()
получает значение email-адреса по ключу или пути к ключу key
и проверяет его валидность.
key
не существует или его значение не может быть интерпретировано, а default
не определено, то возвращается None
.check_blacklist
имеет значение False
, то он не будет проигнорирован.Benedict.get_float(key, default=0.0, choices=[])
:Метод Benedict.get_float()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде числа float
.
Аргумент choices
должен быть списком объектов float
.
key
не существует или его значение не может быть интерпретировано, а default
не определено, то возвращается значение None
.choices
, а преобразованное значение ключа key
совпадает с любым значением из choices
, то возвращается преобразованное значение ключа, иначе возвращается значение default
.>>> from benedict import benedict >>> data = {'d': '202.3'} >>> d = benedict(data) >>> d.get_float('d', choices=[202.5, 202.3]) # 202.3 # преобразованное число не входи в список `choices` >>> d.get_float('d', choices=[202.5, 202.4]) # 0.0
Benedict.get_float_list(key, default=[], separator=",")
:Метод Benedict.get_float_list()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде списка объектов float
.
Аргумент default
должен быть списком объектов float
.
key
не существует, а default
не определено, то возвращается None
.separator
и значение key
является строкой, то она будет разделена по значению separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается значение [None]
.>>> from benedict import benedict >>> data = {'d': '202.3, 100, 10,5'} >>> d = benedict(data) >>> d.get_float_list('d') # [202.3, 100.0, 10.0, 5.0] # другой разделитель >>> data = {'d': '202.3|100|10,5'} >>> d = benedict(data) >>> d.get_float_list('d', separator='|') # [202.3, 100.0, None]
Benedict.get_int(key, default=0, choices=[])
:Метод Benedict.get_int()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде числа int
.
Аргумент choices
должен быть списком объектов int
.
key
не существует или его значение не может быть интерпретировано, а default
не определено, то возвращается значение None
.choices
, а преобразованное значение ключа key
совпадает с любым значением из choices
, то возвращается преобразованное значение ключа, иначе возвращается значение default
.Benedict.get_int_list(key, default=[], separator=",")
:Метод Benedict.get_int_list()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде списка объектов int
.
Аргумент default
должен быть списком объектов int
.
key
не существует, а default
не определено, то возвращается None
.separator
и значение key
является строкой, то она будет разделена по значению separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается значение [None]
.Benedict.get_list(key, default=[], separator=",")
:Метод Benedict.get_list()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде объекта list
.
key
не существует, а default
не определено, то возвращается None
.separator
и значение key
является строкой, то она будет разделена по значению separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается значение [None]
.Benedict.get_list_item(key, index=0, default=None, separator=",")
:Метод Benedict.get_list_item()
получает значение по ключу или пути к ключу key
и пытается из полученного списка вернуть значение по указанному индексу index
.
key
не существует, а default
не определено, то возвращается None
.separator
и значение key
является строкой, то она будет разделена по значению separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается значение None
.Benedict.get_str(key, default="", choices=[])
:Метод Benedict.get_str()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде объекта str
.
Аргумент choices
должен быть списком объектов str
.
key
не существует, а default
не определено, то возвращается None
.choices
, а преобразованное значение ключа key
совпадает с любым значением из choices
, то возвращается преобразованное значение ключа, иначе возвращается значение default
.Benedict.get_str_list(key, default=[], separator=",")
:Метод Benedict.get_str_list()
получает значение по ключу или пути к ключу key
, пытаясь вернуть его в виде списка строк.
key
не существует, а default
не определено, то возвращается None
.separator
, то строка будет разделена по значению separator
на список строк. key
не может быть интерпретировано как список строк, то возвращается [строка]
.