Я пытался получить данные из API
1 request.data['param-name']
вывод -: '9121009000'
2 request.data.get('param-name')
вывод -: '9121009000'
Оба дают одинаковый результат.
Итак, какой из них лучше всего использовать, чтобы получить данные и почему.
заранее спасибо






Если вы выполните вызов request.data['key'], за кулисами Python вызовет функцию __getitem__ для request.data. Мы можем прочитать документация и увидеть:
QueryDict.__getitem__(key)Returns the value for the given
key. If thekeyhas more than one value, it returns the last value. Raisesdjango.utils.datastructures.MultiValueDictKeyErrorif the key does not exist. (This is a subclass of Python's standardKeyError, so you can stick to catchingKeyError.)
Тогда как если вы выполните функцию request.data.get('key'), it will call the.get (..) `, и мы увидим в документация:
QueryDict.get(key, default=None)Uses the same logic as
__getitem__(), with a hook for returning a default value if the key doesn't exist.
Это означает, что если ключ не существует, .get(..) вернет None, если вы указали нет по умолчанию, или он вернет заданное значение по умолчанию, если вы запросите с request.data.get('key', somedefault).
Обычно последний используется в том случае, если значение является необязательным, и вы хотите уменьшить объем кода, чтобы проверить, существует ли ключ.
Да, оба они дадут вам одинаковые результаты, но их отличает способ получения данных для данного ключа. Для этого вам нужно понять, как работают словари в Python, давайте определим dict:
>>> kwarg = {'name': 'John'}
>>> kwarg['name']
'John'
>>> kwarg['age']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'age'
>>>
>>> kwarg.get('age', 25)
25
В приведенном выше примере в первом методе должен присутствовать ключ, тогда как во втором случае я могу определить значение по умолчанию, если ключ не найден.
Возможный дубликат Почему dict.get (ключ) вместо dict [key]?