AWS TimeStream Python SDK:无法创建正确的客户端对象

AWS TimeStream Python SDK:无法创建正确的客户端对象,python,aws-sdk,amazon-timestream,Python,Aws Sdk,Amazon Timestream,基于AWS TimeStream SDK Python文档,我有以下代码: 导入boto3 def列表_数据库(自): 打印(“列表数据库”) 尝试: 结果=self.client.list_数据库(MaxResults=5) self.\u打印\u数据库(结果['databases']) 下一个令牌=result.get('NextToken',无) 而下一个\u令牌: result=self.client.list_数据库(NextToken=next_令牌,MaxResults=5) se

基于AWS TimeStream SDK Python文档,我有以下代码:

导入boto3
def列表_数据库(自):
打印(“列表数据库”)
尝试:
结果=self.client.list_数据库(MaxResults=5)
self.\u打印\u数据库(结果['databases'])
下一个令牌=result.get('NextToken',无)
而下一个\u令牌:
result=self.client.list_数据库(NextToken=next_令牌,MaxResults=5)
self.\u打印\u数据库(结果['databases'])
下一个令牌=result.get('NextToken',无)
除异常作为错误外:
打印(“列表数据库失败:”,错误)
session=bot3.会话(profile_name='superuser',region_name='eu-west-1')
query\u client=session.client('timestream-query')
列表\u数据库(查询\u客户端)
我的用户
超级用户
的身份验证似乎工作正常,但用于我的
query\u客户端
bot3
会话没有客户端对象:

Listing databases
List databases failed: 'TimestreamQuery' object has no attribute 'client'

我遗漏了什么?

此方法中的参数名称可能是错误的:

# this name is discouraged in non-OO code:
def list_databases(self):
self
通常用于面向对象的python代码中,但这里的情况并非如此

将其重命名如下:

# this is better:
def list_databases(client):
然后,删除函数体中提到的
self
,例如:

# this is incorrect:
result = self.client.list_databases(MaxResults=5)
应该是:

# this should work:
result = client.list_databases(MaxResults=5)

你说得对,非常感谢。奇怪的是,这个函数是错误的,因为它直接来自AWS文档:很酷,很高兴听到它现在可以工作了。事实上,这些文件具有误导性。我猜他们的意思是建议将该方法放在python类中,尽管在任何地方都没有明确提到。