python - 使用 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
我怎样才能做到这一点?
我知道这篇文章很长,但如果有帮助,我觉得可以进行完整的讨论。
因此,为了简洁起见,我需要用浮点数替换字符串中的特定文本,例如:
* '你好,世界,我要去度假 * 一些 * 天' *
所以需要用 30 天替换上面的文本 'somenumber' 看起来像(使用 python 正则表达式或替换或其他)
* 'Hello world 我要去度假30天' *
谢谢。
解决方案
尝试使用下面的代码,简单地制作不带引号的整数很容易,只需替换'
'
:
def dummyTorealQuery(file, idval, nameval, daysval):
fr = open(file, 'r')
real_query = fr.read()
fr.close()
return real_query.replace({'old_id': idval,'myname': nameval,"'count_days'":daysval})
myquery = dummyTorealQuery(myfile, 'abcd', 'Bishop', 5)
推荐阅读
- javascript - 我想查询某个位置的供应商,如果该位置没有供应商,我希望它返回数据库中的所有供应商
- reactjs - 当 access_token 过期时,如何让 React App 为用户无缝使用 refresh_token?
- python - 终端无法显示直方图
- javascript - 当我按下按钮时,它会将 davyd 更改为 Ace,将 Ace 更改为 Davyd
- javascript - Google Chrome Extension typeError: chrome.bookmarks.import is not a function
- postgresql - 如何在 Strapi-Postgres 安装中处理 git 版本控制系统的本地 Postgres 数据
- flutter - 如何将 DrawerHeader 的高度精确设置为 AppBar 的高度
- powerbi - 如何统计 Tableau 中的重复客户?
- javascript - 按下按钮时,如何将数组作为表格显示到 HTML 页面?
- android - IONIC App 与 FirebaseX 配合得很好,但是当我打开我的应用程序时,如果我有推送通知,应用程序会删除它们