该字符串:
"CREATE USER %s PASSWORD %s", (user, pw)
总是扩展为:
CREATE USER E'someuser' PASSWORD E'somepassword'
谁能告诉我为什么?
编辑:上面的扩展的字符串是我的数据库在错误消息中给我的字符串。我正在使用psycopg2访问我的postgres数据库。实际的代码如下所示:
conn=psycopg2.connect(user=adminuser, password=adminpass, host=host)
cur = conn.cursor()
#user and pw are simple standard python strings the function gets as parameter
cur.execute("CREATE USER %s PASSWORD %s", (user, pw))
conn.commit()
不仅E,而且引号似乎来自user和pw所具有的任何类型。%s只是做str()做的事情,可能会退回到repr(),这两个都有对应的方法__str__
和__repr__
。另外,那不是生成您的结果的代码(我假设有一个%,但是现在只看到一个逗号)。请使用实际代码,类型和值来扩展您的问题。
附录:考虑到它看起来像SQL,我冒昧地猜测您看到的是转义字符串常量,很可能是由数据库接口模块或库正确生成的。
问题内容: Python中是否可以使用任何函数在字符串的某个位置插入值? 像这样: 然后在位置4添加成为 问题答案: 否。Python字符串是不可变的。 但是,可以创建一个具有插入字符的新字符串:
问题内容: 我很困惑为什么这不起作用。我正在尝试在JSON中添加变量值,每次添加它时,它在JSON字符串中均无法正确显示。 我需要将以上主机名信息添加到以下JSON文档中- 但是每当我以上述方式添加它时,它就根本不起作用。 不知道我在这里做什么错? 问题答案: 您正在转义字符串中的内部双引号。它应该是: 在python中,您还可以对字符串使用单引号-并且不需要在单引号字符串内转义双引号 不过,有两
问题内容: 使用Python v2,我在程序中运行一个值,该值末尾将一个数字四舍五入到小数点后两位: 像这样: 有没有办法在小数点后每三位插入一个逗号值? 即:10000.00变成10,000.00或1000000.00变成1,000,000.00 谢谢你的帮助。 问题答案: 在Python 2.7和3.x中,可以使用格式语法 这是在记录PEP 378 -格式说明千位分隔符 并且在一个例子官方文档
问题内容: 因此,我想在字符串中添加一个字符,在某些情况下,我想将该字符加倍,然后将其添加到字符串中(即先添加到字符串本身)。我尝试如下所示。 这引发了一个错误,但是我已经在字符串中添加了一个字符,所以我尝试了: 哪个有效。为什么在求和中包含字符串会导致它起作用?是否添加了一个字符串属性,该字符串属性由于存在字符串而只能在字符转换为字符串时才能使用? 问题答案: 这是因为String + Char
问题内容: 我需要一条SQL更新语句来更新所有行的特定字段,并在现有值的前面添加一个字符串“ test”。 例如,如果现有值为“ try”,则应变为“ testtry”。 问题答案: 您可以使用CONCAT函数来执行此操作: 如果您想更聪明地只更新尚未预先测试的列,请尝试
问题内容: 如果我有一个字符串变量: 我想在每一个前面加一个转义字符和 变量中 (即 未 竟逃脱字符),我该怎么做? 问题答案: 我不是在这里要求优雅,但我 认为 它可以满足您的要求(如果我误会了,请纠正我): 输出