【发布时间】:2021-06-16 10:15:54
【问题描述】:
我有一个字符串,我想用基于特定键的值进行更新。我的挑战是我的字典中的值之一是部分字符串值
parameters = {"$1":"'name'",
"$2":"hierarchy LIKE '%|user_name|%'"}
我想用值替换 $1 和 $2 的字符串是:
query = """
SELECT
$1 AS org,
FROM
table
WHERE
input ='Active'
AND $2
GROUP BY 1, 2, 3, 4, 5, 6
"""
然后我通过以下代码运行它:
for key in parameters.keys():
query = query.replace(key, parameters[key])
用 'name' 替换 $1 可以正常工作,但不能正确替换 $2。我们最终得到:
print(query)
输出:
"""
SELECT
'name' AS org,
FROM
table
WHERE
input ='Active'
AND hierarchy
GROUP BY 1, 2, 3, 4, 5, 6
"""
问题是在替换 $2 时,它会遗漏完整的字符串。有什么建议吗?
【问题讨论】:
-
你能稍微改变一下查询并用括号包裹
$1吗? -
其实,你的循环对我有用????你用的是哪个 Python 版本?
-
太奇怪了,我使用的是 Python 3。出于某种原因,它正在丢弃值的“LIKE '%|user_name|%'”部分
-
在 $1 周围加上括号是什么意思?我认为那部分实际上是 WAI
-
我的意思是你可以写 `SELECT {$1} AS org, FROM table WHERE input ='Active' AND {$2} GROUP BY 1, 2, 3, 4, 5, 6` 然后@ 987654327@。效果更好吗?
标签: python sql string dictionary key