框架:机器人, 语言:Python-3.7.1 数据库驱动程序:pyodc 熟练程度:新手
我正在尝试将数据库连接配置从python传递到机器人框架,并获得以下错误消息。
TypeError: argument 1 must be a string or unicode object
我试图在传递给机器人之前将其转换为地图,但没有帮助。此外,在此处编写之前已经经历了类似的错误消息讨论,但都没有这样做。有人可以为这种情况提供最佳解决方案吗?
Python:-
注意:每个Key和value变量都是字符串。
def databaseconfig(self, environment):
if (environment == "QA"):
database = {self.Key_Driver: self.Value_Driver,
self.Key_Server: self.Value_Server,
self.Key_Database: self.Value_Database,
self.Key_UID: self.Value_UID,
self.Key_PWD: self.Value_PWD,
self.Key_PORT: self.Value_Port
}
return str(database)
机器人文件:-
${connection}= databaseconfig QA
connect to database using custom params pyodbc ${connection}
预期:-
连接必须成功建立。
实际:
错误:TypeError:参数1必须是字符串或Unicode对象
答案 0 :(得分:2)
我还没有使用这个框架,但是文档建议您可能没有对参数字符串使用正确的语法:https://franz-see.github.io/Robotframework-Database-Library/api/0.5/DatabaseLibrary.html#Connect%20To%20Database%20Using%20Custom%20Params
他们在此处提供的示例语法为database='my_db_test', user='postgres', password='s3cr3t', host='tiger.foobar.com', port=5432
,而不是Python字典的字符串表示形式。
如果用此代码替换str(database)
,您能看到它是否有效吗?
return ", ".join(
"{}='{}'".format(a, b) for a,b in database.items()
)