首页 > 解决方案 > Python 中以请求 get() 方法为前缀的字典

问题描述

我目前正在查看财务 API 的一些代码,并且有一个示例函数似乎可以处理指定类型的请求(我对请求很陌生,所以仍在学习这一点)。
我不明白函数返回的语法。我从来没有见过像这样的方法前面加上字典,这里发生了什么?感谢您的建议。

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

标签: pythondictionarysessiongetpython-requests

解决方案


他们基本上将字典用作“switch表达”;如果您熟悉switchC 和Java等其他语言中的 es (尽管switchC 中的 es 是语句,并且不计算值)。

如果http_method'POST'例如:

{   'GET': session.get,
    'DELETE': session.delete,
    'PUT': session.put,
    'POST': session.post,
}.get('POST')

调用get将评估为session.post,然后将返回。这只是一种替换一些ifs 来决定返回什么的方法。


推荐阅读