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

时间:2019-06-27 10:20:51

标签: google-sheets google-sheets-api gspread

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

list_of_lists = worksheet.get_all_values()

但是如何从带有过滤器的工作表中获取所有值?

例如,我在工作表中有 IS_ACTIVE 列。因此,我只需要在 IS_ACTIVE = 1 处获取值。

1 个答案:

答案 0 :(得分:2)

我认为最好的选择是在抓取工作表之后对数据进行排序。这可能是一种较慢的方法,但至少会很简单。

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)

如果您熟悉函数式编程并且想花哨的话,可以将内置的filter方法与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))