使用python解析SQL查询

时间:2015-10-05 12:54:37

标签: python sql algorithm sqlite parsing

我的问题是关于python的一些问题,但主要是关于算法。

我目前正致力于SQLite查询的Python解析器,尤其是INSERT查询。解析器必须识别查询的表并隔离每个新值。

但我在识别列中的值时遇到问题,可以使用以下两种方法之一填充:

insert into WeirdTable ("PARAMETERS","NAME","VALUE") VALUES (NULL,"BOB","0965");
insert into WeirdTable ("PARAMETERS","NAME","VALUE") VALUES ("Param1,Param2,Param3","Joe","00859");
insert into WeirdTable ("PARAMETERS","NAME","VALUE") VALUES ("Param1,Param2,Param3,Param4","Jack","00855");
insert into WeirdTable ("PARAMETERS","NAME","VALUE") VALUES ("Param1","Bill","00159");

参数列可以采用:NULL或“Param1,Param2,.....”

我首先根据第二组括号内的逗号数进行解析,但由于参数的数量可以改变,因此会破坏我编码的方式。我也尝试使用引号数,但由于参数可能为NULL,因此它也无效。

你有什么想法吗?

非常感谢

编辑:

这是我的代码

def smartReader(text):
    if text.count("(")==2 and text.count(")")==2 :
        temp = text[findnth(text, "(", 0)+1:findnth(text, ")", 0)]
        print 'between first parentehses : ' , temp
        nb_param = temp.count("\"")/2
        print 'number of parametters ' , nb_param 
        param_list=[]
        l=0
        for param in range(1,2*nb_param,2):
            param_list.append(temp[findnth(temp, "\"", param-1)+1 : findnth(temp, "\"", param)])
            print 'parameter inserted : ' ,param_list[l]
            l+=1
    return param_list

我想用这段代码做的是我有不同类型的插入文件,并提到值:

insert into WeirdTable ("PARAMETERS","NAME","VALUE") VALUES (NULL,"BOB","0965");

或直接

insert into WeirdTable VALUES (NULL,"BOB","0965");

所以为此,我检查一下parenthesys的数量,然后在每个括号内我必须找到参数的数量

0 个答案:

没有答案