我有一个来自文件的 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 天' *谢谢。
2 回答
沧海一幻觉
TA贡献1824条经验 获得超5个赞
如果要将表示浮点数的字符串转换为实际浮点数,请使用 Python 的 float 方法:
s = '30.0'
f = float(s)
变量 f 现在是一个浮点数。
添加回答
举报
0/150
提交
取消