gspread - 从类似数字的列中获取字符串形式的值
gspread - Getting values as string from numeric like column
我正在尝试使用 python 使用 gspread 库读取 google sheet。
初始身份验证设置已完成,我可以阅读相应的 sheet。
然而当我这样做时
sheet.get_all_records()
包含类似数值的列(例如 0001,0002,1000)被转换为数值字段。那就是前导零被截断了。如何防止这种情况发生?
这个答案怎么样?在这个答案中,作为几种解决方法之一,使用 get_all_values()
而不是 get_all_records()
。检索值后,数组将转换为列表。请将此视为几个答案之一。
示例脚本:
values = worksheet.get_all_values()
head = values.pop(0)
result = [{head[i]: col for i, col in enumerate(row)} for row in values]
参考:
如果这不是您想要的方向,我深表歉意。
您可以防止 gspread 将值转换为 int 将 numericise_ignore 参数传递给 get_all_records() 方法。
您可以为行中的特定索引列表禁用它:
# Disable casting for columns 1, 2 and 4 (1 indexed):
sheet.get_all_records(numericise_ignore=[1, 2, 4])
或者,将 numericise_ignore 设置为 'all' 的整行值禁用它:
sheet.get_all_records(numericise_ignore=['all'])
我正在尝试使用 python 使用 gspread 库读取 google sheet。
初始身份验证设置已完成,我可以阅读相应的 sheet。
然而当我这样做时
sheet.get_all_records()
包含类似数值的列(例如 0001,0002,1000)被转换为数值字段。那就是前导零被截断了。如何防止这种情况发生?
这个答案怎么样?在这个答案中,作为几种解决方法之一,使用 get_all_values()
而不是 get_all_records()
。检索值后,数组将转换为列表。请将此视为几个答案之一。
示例脚本:
values = worksheet.get_all_values()
head = values.pop(0)
result = [{head[i]: col for i, col in enumerate(row)} for row in values]
参考:
如果这不是您想要的方向,我深表歉意。
您可以防止 gspread 将值转换为 int 将 numericise_ignore 参数传递给 get_all_records() 方法。
您可以为行中的特定索引列表禁用它:
# Disable casting for columns 1, 2 and 4 (1 indexed):
sheet.get_all_records(numericise_ignore=[1, 2, 4])
或者,将 numericise_ignore 设置为 'all' 的整行值禁用它:
sheet.get_all_records(numericise_ignore=['all'])