如何使用 gspread python lib 从带有过滤器的工作表中获取所有值?

How to get all values from a worksheet with a filter using gspread python lib?

以下是从工作表中获取所有值作为列表列表的方法:

list_of_lists = worksheet.get_all_values()

但是如何使用筛选器从工作表中获取所有值?

例如,我在工作表中有 IS_ACTIVE 列。所以我只需要在 IS_ACTIVE=1.

的位置获取值

我认为最好的办法是在抓取工作表后对数据进行排序。这可能是一种较慢的方法,但至少是直截了当的。

list_of_lists = worksheet.get_all_values()
filtered_list = []
for i in list_of_lists:
    if i[<index of IS_ACTIVE column>] == 1:
        filtered_list.append(i)

如果您熟悉函数式编程并且想变得更高级,可以使用带有 lambda 的内置过滤器方法。 Docs here.

list_of_lists = worksheet.get_all_values()
filtered_list = list(filter(lambda i: i[<index of IS_ACTIVE column>] == 1, list_of_lists))