使用列表格式的数据创建查询

时间:2018-07-04 21:02:14

标签: python

对于此列表:

mylist = ['a', 'b', 'c', 'd', 'm']

我需要创建一个查询,如下所示:

(("a"[Journal]) OR ("b" [Journal]) OR ("c" [Journal]) OR ("d" [Journal]) OR ("m" [Journal])) AND ("2007/01/01"[Date] : "2017/12/31"[Date])

我试图使用“ join”打印输出,但是我无法创建此查询。

有什么建议吗?

1 个答案:

答案 0 :(得分:4)

您确实需要join和列表理解:

pieces = ['("{}" [Journal])'.format(j) for j in mylist]
journal_list = " OR ".join(pieces)
query = "({}) {}".format(journal_list, more_stuff)

more_stuff是查询的“日期”部分(例如'AND ("2007/01/01"[Date] : "2017/12/31"[Date])'

另一种方法(较少使用Pythonic)是将格式函数应用于期刊列表:

pieces = map('("{}" [Journal])'.format, mylist)
journal_list = " OR ".join(pieces)
query = "({}) {}".format(journal_list, more_stuff)

结果当然是一样的。