如何通过gspread在Python中将嵌套列表批量插入谷歌表格?
高效批量插入嵌套列表到谷歌表格的方案
一、准备工作
先搞定基础依赖和授权,这是后续操作的前提:
- 安装必要的Python库,打开终端执行:
pip install gspread pip install oauth2client
- 完成谷歌表格API授权:
- 去谷歌云控制台新建项目,启用「Google Sheets API」
- 创建服务账号,下载JSON格式的凭据文件(存到你的项目目录,比如命名为
credentials.json) - 打开目标谷歌表格,把凭据文件里
client_email字段的邮箱添加为表格协作者,权限设为「编辑」
二、核心代码实现
根据你的需求,提供两种常用的批量写入场景:
场景1:从指定位置开始覆盖写入(比如清空表格后写入新数据)
如果表格是空的,或者想覆盖某块区域,用update方法一次完成所有数据写入,效率拉满:
import gspread from oauth2client.service_account import ServiceAccountCredentials # 设置API授权范围 scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive"] # 加载本地凭据文件 creds = ServiceAccountCredentials.from_json_keyfile_name("credentials.json", scope) # 完成授权登录 client = gspread.authorize(creds) # 打开目标表格(替换成你的表格名称) spreadsheet = client.open("我的数据表格") # 选择要写入的工作表(比如第一个工作表sheet1) worksheet = spreadsheet.sheet1 # 你的嵌套列表(实际用用户输入生成的my_list即可) my_list = [["a","b"],["c","d"],["e","f"],["g","h"]] # 批量写入:从A1单元格开始,自动匹配列表的行列数 worksheet.update('A1', my_list)
场景2:追加数据到表格末尾
如果表格已有数据,想把新列表追加到最后一行之后,用append_rows方法更省心:
# 前面的授权代码和上面一致,直接执行追加操作 worksheet.append_rows(my_list)
三、关键注意事项
- 确保嵌套列表里每个子列表的长度完全一致,不然谷歌表格会抛出格式错误
- 批量写入的效率比逐行插入高几个量级!逐行是每次API请求写一行,批量是一次请求写完所有行,数据量越大差距越明显
- 如果列表特别长(比如上万行),可以分批次写入(比如每1000行写一次),避免单次请求数据量过大触发API限制
内容的提问来源于stack exchange,提问作者Sameera
相关产品推荐
相关产品推荐

