Jus*_*ill 3 python django django-views python-3.x django-rest-framework
我试图从API获取数据
1 request.data['param-name']
输出 - :'9121009000'
2 request.data.get('param-name')
输出 - :'9121009000'
两者都给出了相同的结果.
那么哪一个最好使用获取数据和为什么.
提前致谢
如果你request.data['key']在窗帘后面执行一个调用,Python将调用__getitem__函数request.data.我们可以阅读文档并查看:
QueryDict.__getitem__(key)返回给定的值
key.如果key有多个值,则返回最后一个值.如果密钥不存在则引发django.utils.datastructures.MultiValueDictKeyError.(这是Python标准的子类KeyError,所以你可以坚持捕捉KeyError.)
如果你执行request.data.get('key'), it will call the.get(..)`函数,我们在文件中看到:
QueryDict.get(key, default=None)使用相同的逻辑
__getitem__(),如果键不存在,则使用钩子返回默认值.
因此,这意味着,如果该键不存在,.get(..)将返回None,如果你也没有提供默认,或者如果你查询将返回给定的默认值request.data.get('key', somedefault).
通常,后者用于值是可选的,并且您希望减少检查密钥是否存在的代码量.