如何使用 Python 根据条件返回 Google 表格中的一系列单元格?

问题描述 投票:0回答:1

以下是我在 Google 表格中的示例:

1   | ID | Fav Color | Fav Book |
2   | 01 |  color1   |  book2   |
3   | 02 |  color2   |  book2   |
4   | 03 |  color2   |  book1   |
...
100 | 99 |  color1   |  book2   |

使用 gspread,是否可以只查找和打印那些说 book2 是他们最喜欢的书的人的 ID 和最喜欢的颜色? (预期结果:打印第 2、3 和 100 行)

我一直在查看 gspread 文档,只是想不出任何东西。非常感谢任何帮助。

python gspread
1个回答
0
投票

加载工作表,然后将所有数据加载为:

您可以使用列表理解来过滤列表,或者您可以在打印时循环遍历整个数据集并跳过最喜欢的书不是您要查找的行。

此示例使用

get_all_records()
后跟列表理解来过滤列表,然后打印。我没有为测试设置测试电子表格的麻烦,所以如果我犯了明显的错误,请随时编辑。

import gspread

# Load Spreadsheet and primary worksheet
gc = gspread.service.account()
sheet = gc.open('My Data')
worksheet = sheet.sheet1 

# Load as a list of dicts
list_of_dicts = worksheet.get_all_records()

# Strip people who don't like book2.
book2_lovers = [d for d in list_of_dicts if d.get("Fav Book") == "book2"]

# Print header
print(f"{'ID':-^8}    {'Fav Color':-^15}")
# Print data
for person in book2_lovers:
    print(f"{person.get('ID'):^8}    {person.get('Fav Color'):^15}")
© www.soinside.com 2019 - 2024. All rights reserved.