使用gspread读取Google Sheets单元格返回异常格式,如何转换为可用变量?
解决Google Sheets(gspread)读取单元格返回Cell对象的问题
嘿,我刚好之前用gspread的时候也踩过这个坑!你现在打印出来的Cell R1C1 '2'其实不是单元格的实际值,而是gspread返回的Cell类实例对象——它包含了单元格的位置、值等额外信息,所以直接打印会显示这种格式。
快速解决方案
调用Cell对象的value属性就能提取单元格的文本内容,之后还可以根据需求转换成对应的数值类型(比如你需要的计数器整数):
修改后的代码示例:
import gspread from oauth2client.service_account import ServiceAccountCredentials scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive'] credentials = ServiceAccountCredentials.from_json_keyfile_name('My Project-b417d3513158.json', scope) client = gspread.authorize(credentials) sheet = client.open('Database').sheet1 # 先获取Cell对象,再提取value属性 cell_obj = sheet.cell(1,1) cell_text = cell_obj.value print(cell_text) # 输出:'2' # 转换成整数类型的计数器变量 counter = int(cell_text) print(counter) # 输出:2
简化写法
如果不需要Cell对象的其他属性(比如单元格位置信息),可以直接链式调用一步到位:
# 直接获取并转换为整数计数器 counter = int(sheet.cell(1,1).value)
这样就能得到可以直接用来做计数的变量啦!
内容的提问来源于stack exchange,提问作者Buwwet
相关产品推荐
相关产品推荐

