У меня есть строка 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' для идентификатора '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 * дней ** *
Так что нужно заменить текст 'somenumber' в приведенном выше слове30 дней, чтобы выглядеть (используя регулярное выражение или замену Python или что-то еще)
* «Привет, мир, я собираюсь в отпуск на 30 дней» *
Спасибо.