在 Python 2.7 中为字符串添加单引号
Add a single quote to a string in Python 2.7
我想使用 SQL 输出字符串在 PostgreSQL 中使用 Python 查询一些数据。我正在使用 Python 2.7.
例如:
The output string is mike
I want to have mike
as 'mike'
to be valid as an input.
这是我的代码:
formated_fix_names = ''.join(author_name_fix_list)).replace(' ', '\'')
问题是我需要将此字符串作为 name = 'mike'
:
传递给 SQL 代码
cursor.execute("select author_name from commits where commit_hash in ("+formated_fix_names+")")
我认为问题一定出在这一部分.replace(' ', '\'')
。
可以使用双引号(""
),例如:
name = "mike"
result = "'" + name + "'"
如果你想把字符串 mike 变成字符串 'mike' 你可以使用这个表达式:
name = "mike"
newName = "'%s'" % name
这会将包含字符串 mike 的 name 转换为 newName,其中包含带有单引号的字符串 mike,您现在应该可以使用它了。希望对您有所帮助!
不要搞乱字符串操作。 Psycopg does the right thing by adapting a Python list
to a Postgresql array
:
author_list = ['John','Mary']
query = """
select author_name
from commits
where commit_hash = any (%s)
"""
print cursor.mogrify(query, (author_list,))
#cursor.execute(query, (author_list,))
输出:
select author_name
from commits
where commit_hash = any (ARRAY['John', 'Mary'])
注意 list
必须传递给包装在可迭代对象中的 cursor.execute
方法。
如果将 list
强制转换为 tuple
:
,则可以使用 in
语法
author_list = ['John','Mary']
query = """
select author_name
from commits
where commit_hash in %s
"""
print cursor.mogrify(query, (tuple(author_list),))
#cursor.execute(query, (tuple(author_list),))
输出:
select author_name
from commits
where commit_hash in ('John', 'Mary')
我想使用 SQL 输出字符串在 PostgreSQL 中使用 Python 查询一些数据。我正在使用 Python 2.7.
例如:
The output string is
mike
I want to havemike
as'mike'
to be valid as an input.
这是我的代码:
formated_fix_names = ''.join(author_name_fix_list)).replace(' ', '\'')
问题是我需要将此字符串作为 name = 'mike'
:
cursor.execute("select author_name from commits where commit_hash in ("+formated_fix_names+")")
我认为问题一定出在这一部分.replace(' ', '\'')
。
可以使用双引号(""
),例如:
name = "mike"
result = "'" + name + "'"
如果你想把字符串 mike 变成字符串 'mike' 你可以使用这个表达式:
name = "mike"
newName = "'%s'" % name
这会将包含字符串 mike 的 name 转换为 newName,其中包含带有单引号的字符串 mike,您现在应该可以使用它了。希望对您有所帮助!
不要搞乱字符串操作。 Psycopg does the right thing by adapting a Python list
to a Postgresql array
:
author_list = ['John','Mary']
query = """
select author_name
from commits
where commit_hash = any (%s)
"""
print cursor.mogrify(query, (author_list,))
#cursor.execute(query, (author_list,))
输出:
select author_name
from commits
where commit_hash = any (ARRAY['John', 'Mary'])
注意 list
必须传递给包装在可迭代对象中的 cursor.execute
方法。
如果将 list
强制转换为 tuple
:
in
语法
author_list = ['John','Mary']
query = """
select author_name
from commits
where commit_hash in %s
"""
print cursor.mogrify(query, (tuple(author_list),))
#cursor.execute(query, (tuple(author_list),))
输出:
select author_name
from commits
where commit_hash in ('John', 'Mary')