我的问题是关于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的数量,然后在每个括号内我必须找到参数的数量