You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python连接Elasticsearch认证报错:TypeError: 'Session' object is not callable

解决Python操作Elasticsearch时的TypeError: 'Session' object is not callable错误

嘿,我来帮你定位问题出在哪!你这段代码的核心问题是混淆了Session对象的用法,具体来说:

你创建了requests.Session()实例并设置了认证,但之后却还是用requests.get()发起请求,还错误地把session对象传给了auth参数——而auth参数需要的是像HTTPBasicAuth这样的认证对象,不是Session实例,这就直接导致了那个类型错误。

给你两种修正方案,选一种就行:

方案一:用Session对象发起请求(推荐,适合需要保持会话的场景)

import requests
from requests.auth import HTTPBasicAuth

uname = 'elastic'
pswd = 'elastic'

# 创建Session实例并设置认证,后续所有请求都会自动带上这个认证
session = requests.Session()
session.auth = HTTPBasicAuth(uname, pswd)

# 用session调用get方法,而不是requests.get
res = session.get('http://localhost:9200')
print(res.content)

方案二:直接在请求中传入认证(适合单次请求)

如果不需要保持会话,也可以不用Session,直接把认证对象传给auth参数:

import requests
from requests.auth import HTTPBasicAuth

uname = 'elastic'
pswd = 'elastic'

# 直接将HTTPBasicAuth实例传入auth参数
res = requests.get('http://localhost:9200', auth=HTTPBasicAuth(uname, pswd))
print(res.content)

简单总结下:Session是用来管理会话的工具,设置好认证后要通过它来发起请求;而auth参数只接受认证凭证对象,不能直接传Session。

内容的提问来源于stack exchange,提问作者Kailash Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 03:55:24