您好我有一个列表项,这是一个像这样的字符串:
scope_items = [“4760 5.2 5.1,acs 8.0.0 7.1,chicago 4.1.0 4.0.0 3.2.0 1.0.1 3.0.0”]
我设法在名为scope_list
scope_list = ['4760', '5.2', '5.1,', 'acs', '8.0.0', '7.1,', 'chicago', '4.1.0', '4.0.0', '3.2.0', '1.0.1', '3.0.0']
但是你可以看到逗号(,
)也存储了......
我想创建一个SQL语句,如:
WHERE (
columnvalue1 = 4760
AND columnvalue2 IN (5.2,5.1)
)
OR (
columnvalue1="acs"
AND columnvalue2 IN (8.0.0,7.1)
)
OR (
columnvalue1 = "chicago"
AND colmnvalue2 IN (4.1.0, 4.0.0, 3.2.0, 1.0.1, 3.0.0)
)
我正在使用SQLAlchemy,我管理了第一部分(在OR之前),如下所示:
or_args = [and_(
table1.c.columnvalue1 == scope[0],
table1.c.columnvalue12.in_(scope[1:])) for scope in scope_list]
如何在每个,
之后对所有其他值执行相同的操作?
答案 0 :(得分:0)
您可以在逗号上split
:
scope_groups = scope_items[0].split(", ")
现在scope_groups
中的每个元素都是您规则的一个组,其中第0个项是列,其他任何项都是值:
for group in scope_groups:
group = group.split(" ")
# use group[0] and group[1:]