我有一个来自文件的 SQL 字符串,如下所示:
SELECT a.codeid, a.name, a.order, a.cost, a.nodays
FROM Table a
Where a.codeid = 'old_id'
and a.name = 'myname'
and a.nodays = 'count_days'
这里的'old_id'、'myname'和'count_days'是我需要在运行sql查询时更改为真实值的虚拟值,例如'abcd'的id 'Bishop'的名称和5(例如)的nodays。
我已经定义了一个 python 函数来将文件中的 sql 查询转换为我想要的真实 sql(之后将使用 pyodbc 来提取数据)
import re
def dummyTorealQuery(file, idval, nameval, daysval):
daysval_st = str(daysval)
mydict = {'old_id': idval,'myname': nameval,'count_days':daysval_st}
fr = open(file, 'r')
real_query = fr.read()
fr.close()
for key, value in mydict.items():
real_query = re.sub(key,value, real_query)
myquery = dummyTorealQuery(myfile 'abcd', 'Bishop', 5)
但是,当我得到输出时,它看起来像:
SELECT a.codeid, a.name, a.order, a.cost, a.nodays
FROM Table a
Where a.codeid = 'abcd'
and a.name = 'Bishop'
and a.nodays = '5'
问题是,我不希望最后一行用 5 括在一个字符串中,我希望它是
SELECT a.codeid, a.name, a.order, a.cost, a.nodays
FROM Table a
Where a.codeid = 'abcd'
and a.name = 'Bishop'
and a.nodays = 5
我怎样才能做到这一点?
我知道这篇文章很长,但如果有帮助,我觉得有一个完整的讨论。
因此,简洁地说,我需要用浮点数替换字符串中的特定文本,例如:
*“世界你好,我要去* 一些 *天的假期”*
因此需要将上面的文本“somenumber”替换为 30 天的样子(使用 python 正则表达式或替换或其他)
* '你好世界我要去度假 30 天' *
谢谢。
沧海一幻觉
相关分类