Python 查看错误:会话必须是<;requests.session.session对象>;不是<;类别';str'>;-不知道是什么意思

Python 查看错误:会话必须是<;requests.session.session对象>;不是<;类别';str'>;-不知道是什么意思,python,Python,我正在试验IG市场,并尝试运行以下功能: response = ig_service.fetch_client_sentiment_by_instrument('GBPUSD','NZDGBP') print(response) 但我看到了这个错误: 文件“C:\Users\Barry\Desktop\IG Trading\IG markets api python library master\Trading\u IG\rest.py”,第211行,在\u get\u会话中 %类型(会话)

我正在试验IG市场,并尝试运行以下功能:

response = ig_service.fetch_client_sentiment_by_instrument('GBPUSD','NZDGBP')
print(response) 
但我看到了这个错误:

文件“C:\Users\Barry\Desktop\IG Trading\IG markets api python library master\Trading\u IG\rest.py”,第211行,在\u get\u会话中 %类型(会话) AssertionError:会话不能为空

请注意,只有在使用了多个marketid时才会发生这种情况:('GBPDUSD','NZDGBP')。以下请求有效:

response = ig_service.fetch_client_sentiment_by_instrument('GBP')
print(response)   
下面的代码显示了实际的声明

def fetch_client_sentiment_by_instrument(self, market_id, session=None):
    """Returns the client sentiment for the given instrument's market"""
    params = {}
    if isinstance(market_id, (list,)):
        market_ids = ','.join(market_id)
        url_params = {
            'market_ids': market_ids
        }
        endpoint = '/clientsentiment/?marketIds={market_ids}'.\
            format(**url_params)
    else:
        url_params = {
            'market_id': market_id
        }
        endpoint = '/clientsentiment/{market_id}'.format(**url_params)
    action = 'read'
    response = self._req(action, endpoint, params, session)
    data = self.parse_response(response.text)
    if self.return_munch:
        from .utils import munchify
        data = munchify(data)
    return(data)


def _get_session(self, session):
    """Returns a Requests session (from self.session) if session is None
    or session if it's not None (cached session with requests-cache
    for example)
    """
    if session is None:
        session = self.session  # requests Session
    else:
        assert(isinstance(session, Session)), \
            "session must be <requests.session.Session object> not %s" \
            % type(session)
        session = session
    return session
def-fetch\u-client\u-touction\u-by\u-instrument(self,market\u-id,session=None):
“”“返回给定工具市场的客户情绪”“”
参数={}
如果存在(市场id,(列表,):
market_id=','。加入(market_id)
url_参数={
“市场ID”:市场ID
}
端点='/clienttouction/?marketIds={market_id}'\
格式(**url_参数)
其他:
url_参数={
“市场id”:市场id
}
endpoint='/clienttouction/{market_id}'。格式(**url_参数)
动作='read'
响应=自请求(操作、端点、参数、会话)
data=self.parse\u响应(response.text)
如果self.return\u munch:
from.utils import munchify
数据=munchify(数据)
返回(数据)
定义获取会话(self,session):
“”“如果会话为无,则返回请求会话(从self.session)
或者会话(如果不是None,则为带有缓存请求的缓存会话)
(例如)
"""
如果会话为“无”:
会话=self.session#请求会话
其他:
断言(isinstance(会话,会话))\
“会话必须不是%s”\
%类型(会话)
会话=会话
返回会话

通过工具获取客户情绪的第三个参数默认为
None
。如果您为它提供了一个值,那么您需要传入一个合适的
会话
对象(这允许您覆盖
请求
的默认行为,例如,当您希望使用特定的TLS版本而不是您从HTTPS连接中获得的任何内容时)。它不是为了传递额外的
market\u id
标识符,从函数的定义可以很容易地看出这一点


(该方法调用提供了一个隐式的第一个参数,因此该方法的第三个参数来自该方法调用中的第二个显式参数,就像Python中第一个参数是
self
的地方一样)

当您的函数看到“GBPUSD”、“NZDGBP”时,它将NZDGBP赋值给会话变量,因此崩溃

尝试运行:

响应=ig_服务。通过工具获取客户情绪(['GBPSUSD','NZDGBP'])

Mow是一个单一的列表,应按预期运行