首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >泛型代码或Python函数,用于使用Python查找字符串中的多个子字符串和字符。

泛型代码或Python函数,用于使用Python查找字符串中的多个子字符串和字符。
EN

Stack Overflow用户
提问于 2016-05-23 15:47:36
回答 1查看 82关注 0票数 1

我是Python的初学者。我正在努力解决以下问题。我在.txt文件中有一个SQL查询列表(例如):

代码语言:javascript
复制
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等特定值替换为“?”

所以我想得到这样的输出:

代码语言:javascript
复制
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用户了解对我的情况有用的函数或函数的组合。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2016-05-23 16:13:52

我为此写了一个小剧本。希望你能做得很好。

代码语言:javascript
复制
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)

我测试过了,看起来很管用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37395316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档