我是Python的初学者。我正在努力解决以下问题。我在.txt文件中有一个SQL查询列表(例如):
SELECT first_name, last_name From table1 WHERE ID = 1234 AND date_of_birth = 19/01/1996;
SELECT last_name From table2 WHERE ID = 4563 AND date_of_birth = 10/04/1997 AND lisence_no = 2874;
SELECT first_name From table1 WHERE ID = 3762 AND age = 23 AND last_name = 'Maria';
SELECT first_name From table1 WHERE ID = 2894;等等.现在,我希望将查询中的ID、last_name、lisence_no等特定值替换为“?”
所以我想得到这样的输出:
SELECT first_name, last_name From table1 WHERE ID = '?' AND date_of_birth = '?';
SELECT last_name From table2 WHERE ID = '?' AND date_of_birth = '?' AND lisence_no = '?';
SELECT first_name From table1 WHERE ID = '?' AND age = '?' AND last_name = '?';
SELECT first_name From table1 WHERE ID = '?';我可以在python中使用什么函数来获得这种类型的输出,以获得一个庞大的sql查询列表?
我知道像str.find或str.index这样的函数只会搜索一个事件,并且会涉及到一些工作。我希望一些专业的python用户了解对我的情况有用的函数或函数的组合。
非常感谢!
发布于 2016-05-23 16:13:52
我为此写了一个小剧本。希望你能做得很好。
def replaceCustom(inputField, str):
index = 0
index2 = 1
while(index<index2):
index = str.find(inputField,index)
index2 = str.find("AND",index2)
str = str.replace((str[index:index2]), inputField+ " = '?' ")
index +=1
index2 +=1
print (index, index2)
return str
str = """SELECT first_name, last_name From table1 WHERE ID = 1234 AND date_of_birth = 19/01/1996;
SELECT last_name From table2 WHERE ID = 4563 AND date_of_birth = 10/04/1997 AND lisence_no = 2874;
SELECT first_name From table1 WHERE ID = 3762 AND age = 23 AND last_name = 'Maria';
SELECT first_name From table1 WHERE ID = 2894;"""
str = replaceCustom("ID", str)
str = replaceCustom("date_of_birth", str)
str = replaceCustom("lisence_no", str)我测试过了,看起来很管用。
https://stackoverflow.com/questions/37395316
复制相似问题