Gspread 正在从 Google Sheet 命名范围中检索所有字符串,即使某些单元格是数字也是如此

Gspread is retrieving all strings from a Google Sheet named range even when some cells are numbers

当我使用 Gspread 打开 Google Sheet 并检索命名范围时,返回的是一个列表列表,其中每个数据点都是一个字符串。这是一个示例 sheet:

单元格 a1:e5 是一个名为 NamedRange1 的命名区域。

我可以按如下方式导入 NamedRange1:

wks = gc.open("Gspread_test").sheet1
data_range = wks.get("NamedRange1") # arrives as list of lists

出现在Python中的,虽然来源是字符串和数字的混合,是一个全是字符串的列表列表:

[['Able', 'Baker', 'Charlie', 'Delta', 'Echo'],
 ['Blue', 'New York', '3', '', '100'],
 ['Green', 'New Jersey', '4', '5', '100'],
 ['Red', 'New York', '', '6', '100'],
 ['Orange', 'New Jersey', '7', '', '100']]

如何从 Google Sheet 中检索数据,以便数字以数字形式出现(字符串以字符串形式出现)?

基于 spreadsheets.values.get, you can configure valueRenderOption 应如何在输出中表示值。

因此,如果要将范围值读取为 int,请将 valueRenderOption 设置为 UNFORMATTED_VALUE。 (默认渲染选项是 FORMATTED_VALUE

data_range = wks.get("NamedRange1", value_render_option='UNFORMATTED_VALUE')

附加参考: Gspread get(range_name=None, **kwargs)