繁体   English   中英

错误:TypeError:参数1必须是字符串或Unicode对象

[英]Error: TypeError: argument 1 must be a string or unicode object

框架:机器人, 语言: Python-3.7.1 数据库驱动程序: pyodc 熟练程度:新手

我试图将数据库连接配置从python传递到机器人框架,并获得以下错误消息。

TypeError: argument 1 must be a string or unicode object

我试图在传递给机器人之前将其转换为地图,但没有帮助。此外,在这里编写之前已经经历了类似的错误消息讨论,但都没有这样做。 有人可以为这种情况提供最佳解决方案吗?

蟒蛇:-

注意:每个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对象

我没有使用过此框架,但是文档建议您可能未对参数字符串使用正确的语法: https : //franz-see.github.io/Robotframework-Database-Library/api/0.5/DatabaseLibrary.html #连接%20To%20Database%20Using%20Custom%20Params

他们在此处提供的示例语法是database='my_db_test', user='postgres', password='s3cr3t', host='tiger.foobar.com', port=5432 ,而不是Python字典的字符串表示形式。

如果用此代码替换str(database) ,是否可以查看是否str(database)

return ", ".join(
    "{}='{}'".format(a, b) for a,b in database.items()
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM