Python 查看错误:会话必须是<;requests.session.session对象>;不是<;类别';str'>;-不知道是什么意思
我正在试验IG市场,并尝试运行以下功能: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会话中 %类型(会话)
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是一个单一的列表,应按预期运行