gpt4 book ai didi

python - Python 如何在没有 %s 的情况下进行字符串替换?

转载 作者:太空宇宙 更新时间:2023-11-04 09:13:47 25 4
gpt4 key购买 nike

检查我发现的以下 Python 2.6 代码行:

key = 'hire_date' 
update_dict['key'] = update_dict[key] #added e.g. {..., 'key': '12/31/1999'}
if key == 'hire_date':
query_string = "UPDATE employee SET " + key + "= CAST(%(key)s AS DATE) WHERE emp_id = '" + emp.employee + "'"

我已经测试了这段代码,它有效。它成功地将数据库中员工的 hire_date 字段更新为 'key' 在字典中的值。

当我注意到 %(key)s 以某种方式设法在 'key' 处获取字典的值时,我正在对它进行参数化。它是如何做到的?我一直认为你必须在字符串后添加 % dictionaryOrTupleOrWhatever 才能工作。

最佳答案

在您粘贴的代码中,没有发生插值。但是,稍后可以对变量进行插值:

>>> x = "%(var)s" # no interpolation yet
>>> d = {'var': 88}
>>> x % d # interpolate into the stored string
'88'

鉴于您发布的代码看起来像 SQL,它也可以稍后通过 SQL 库调用进行插值。许多 SQL 接口(interface)库使用 % 符号提供类似的字符串替换,并鼓励用户使用这些而不是内置的字符串替换,因为 SQL 库版本有各种保护措施来防止恶意注入(inject)攻击.

关于python - Python 如何在没有 %s 的情况下进行字符串替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11802001/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com