使用 Python 将字符串/句子中的特定文本替换为浮点数

我有一个来自文件的 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 天' *


谢谢。


料青山看我应如是
浏览 212回答 2
2回答

沧海一幻觉

如果要将表示浮点数的字符串转换为实际浮点数,请使用 Python 的 float 方法:s = '30.0'f = float(s)变量 f 现在是一个浮点数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python