我如何从行拉数据基于一个特定字符的存在在一个特定的列与谷歌表?



我发送API调用到谷歌表检索信息,像这样:

gc = gspread.authorize(credentials)
def grab_available_row(wks):
str_list = list(filter(None, wks.col_values(17)))
return str(len(str_list)+1) 
wks = gc.open("test").worksheet("Logs")
grab_row = grab_available_row(wks)
try:
GrabRequestTest = wks.acell("B{}".format(grab_row)).value
except:
pass
try:
print(GrabRequestTest)
ctypes.windll.user32.MessageBoxW(0, "DONE!!!", "DONE!!!", 1)
sys.exit()
except:
pass

,我可以在任何检索信息行如果没有值出现在列# 17。换句话说,这实际上是从第一个可用行的第17列中读取任何内容。如果我在第17列放一个X,它将读取它下面的行。这可不是我要找的。

我希望能够在第17列中出现特定字符(如X)的行中打印所有值,并忽略所有其他行。然后,我将从第17列中包含X的每一行获取数据,并使用邮件合并生成一堆.docx文件。我很容易算出第二部分。有人知道怎么完成第一部分吗?(打印第17列中X所在行的值)

I'd like to be able to print all values in a row where a specific character like X is present in column 17, and ignore all other rows. I'd then take the data from each row with X present in column 17 and use mail merge to generate a bunch of .docx files. I can easily figure out the second part. Anybody know how to accomplish the first part? (print values in a specific row where X is present in column 17),我相信你的目标在这个问题是这样的。

  • 您希望根据第17列(它的列"Q")的特定值检索过滤的行。
  • 你想在python中使用gspread来实现这一点。

在这种情况下,下面的修改如何?

修改脚本:

gc = gspread.authorize(credentials)
wks = gc.open("test").worksheet("Logs")
search = "X" # Please set the search value you expect.
values = [r for r in wks.get_all_values() if r[16] == search]
print(values)
  • 当这个脚本运行时,列"Q"为search的值,以二维数组的形式检索。

补充道:

从以下回复中,

差不多了!如何仅按列打印?比如,我只想要数组中第三列的值。Print (values[4])似乎不工作。

在这种情况下,下面的示例脚本如何?

示例脚本:

gc = gspread.authorize(credentials)
wks = gc.open("test").worksheet("Logs")
search = "X" # Please set the search value you expect.
col = 3 # From your reply, the values of the column "C" is retrieved.
values = [r[col - 1] for r in wks.get_all_values() if r[16] == search]
print(values)

相关内容

  • 没有找到相关文章

最新更新