如何从 Jupyter 笔记本将字符串传递给 IPython 中的 boto3 函数?

How do I pass a string to a boto3 function in IPython from a Jupyter notebook?

我正在 Jupyter 中设置一个环境,允许用户从 AWS Glue 查询他们的数据库架构。 Jupyter line magic 接受 2 个参数:数据库名称和 table 名称。

然后使用 split() 解析这些参数,并将其分成两个参数:数据库和 table。

将这些传递给 glue.get_table 调用的最佳方法是什么?哪个接受我之前在代码中明确声明的 2 个参数?

我是 Python 的新手,可能在这里缺少明显的答案,但我目前将它们作为字符串变量传递。

@line_magic('describe') def describe(self, line, local_ns = None):

database = line.split(" ")[0]
view     = line.split(" ")[1]

glue = boto3.client('glue', region_name=ec2_metadata.region)        
response = glue.get_table(DatabaseName='%s', Name='%s' % (database, view))

我希望看到这些值被传递到 boto 中,就像我自己写的一样,但我看到了

类型错误:在字符串格式化期间并非所有参数都已转换

在 glue.get_table() 函数中被抛出

试试这个:

response = glue.get_table(DatabaseName=database, Name=view)