Python 中请求 get() 方法前缀的字典
Dictionary prefixed to requests get() method in Python
我目前正在查看一些财务代码 API 并且有一个示例函数似乎可以处理指定类型的请求(我对请求很陌生,所以仍在学习这个) .
我不明白函数 return 中的语法。我从来没有见过像这样的方法前面有字典,这里发生了什么?谢谢指教。
import requests
def dispatch_request(http_method):
session = requests.Session()
session.headers.update({
'Content-Type': 'application/json;charset=utf-8',
'X-MBX-APIKEY': KEY
})
return {
'GET': session.get,
'DELETE': session.delete,
'PUT': session.put,
'POST': session.post,
}.get(http_method, 'GET')
如果有人感兴趣,可以在此处查看完整示例:https://github.com/binance-exchange/binance-signature-examples/blob/master/python/spot.py
他们基本上是将字典用作“switch
表达式”;如果您熟悉其他语言(如 C 和 Java 中的 switch
es(尽管 C 中的 switch
es 是语句,并且不求值)。
如果 http_method
是 'POST'
例如:
{ 'GET': session.get,
'DELETE': session.delete,
'PUT': session.put,
'POST': session.post,
}.get('POST')
对 get
的调用将评估为 session.post
,然后将被 returned。这只是一种替换一些 if
来决定 return.
的方法
我目前正在查看一些财务代码 API 并且有一个示例函数似乎可以处理指定类型的请求(我对请求很陌生,所以仍在学习这个) .
我不明白函数 return 中的语法。我从来没有见过像这样的方法前面有字典,这里发生了什么?谢谢指教。
import requests
def dispatch_request(http_method):
session = requests.Session()
session.headers.update({
'Content-Type': 'application/json;charset=utf-8',
'X-MBX-APIKEY': KEY
})
return {
'GET': session.get,
'DELETE': session.delete,
'PUT': session.put,
'POST': session.post,
}.get(http_method, 'GET')
如果有人感兴趣,可以在此处查看完整示例:https://github.com/binance-exchange/binance-signature-examples/blob/master/python/spot.py
他们基本上是将字典用作“switch
表达式”;如果您熟悉其他语言(如 C 和 Java 中的 switch
es(尽管 C 中的 switch
es 是语句,并且不求值)。
如果 http_method
是 'POST'
例如:
{ 'GET': session.get,
'DELETE': session.delete,
'PUT': session.put,
'POST': session.post,
}.get('POST')
对 get
的调用将评估为 session.post
,然后将被 returned。这只是一种替换一些 if
来决定 return.