当前位置: 首页 > 知识库问答 >
问题:

Python Google Sheets API v4:如何批量获取和批量更新Google Sheets?

麹承
2023-03-14

Google Sheets API v4:

Python快速入门演示如何从谷歌电子表格中获取数据:

result = service.spreadsheets().values()
         .get(spreadsheetId=spreadsheetId, range=rangeName).execute()
values = result.get('values', [])

看https://developers.google.com/sheets/quickstart/python

现在,我已经解析了Batch Get的语法:

我尝试了以下操作,但“值”为null:

rangeName = ["Class Data!A2:E2","Class Data!A3:E3"]
result = service.spreadsheets().values().batchGet(
         spreadsheetId=spreadsheetId, ranges=(rangeName)).execute()
for r in result['valueRanges']:
    print (r.values()[0],r.values()[1])

共有2个答案

卫子平
2023-03-14

如果有人在Google上发现了这一点,答案是(就像Java示例中暗示的NoiseyFlasher一样,就像OP即将发布的那样)简单地以Python列表的形式提供范围。但是,结果是dict,而不是对象:

rangeName = ["Class Data!A2:E2","Class Data!A3:E3"]
result = service.spreadsheets().values().batchGet(
         spreadsheetId=spreadsheetId, ranges=rangeName).execute()
for r in result['valueRanges']:
    print (r['values'])
苏晓博
2023-03-14

我不擅长python,但我在java客户端遇到了同样的问题,希望这个解决方案能有所帮助。我试着只使用

service.spreadsheets().values().batchGet
                        (spreadsheetID).execute();

正如文件所说,但没有结果。当我找到一种方法-使batchGet时,您应该指定希望从电子表格中获取的范围列表。请注意此setRange()调用:

final ArrayList<String> RANGES = new ArrayList<>();
        RANGES.add("Sheet1");
        RANGES.add("Sheet2");
BatchGetValuesResponse response = service.spreadsheets().values().batchGet
                    (spreadsheetID).setRanges(RANGES).execute();
 类似资料:
  • 一、简介 方便用户在设置URL规则时更新url,无需手动去更新各页面URL。只需选择就能批量更新URL即可。 二、功能演示 1.批量更新URL 1、仅当内容页URL规则发上变化时,请批量更新,地址未改变时,不需要更新 。 2、规则设置:设置 > 相关设置 > 管理栏目 > 添加或修改栏目 选择需要更新的模型和栏目,输入每轮更新的信息数目提交则完成批量更新URL操作。如下图所示:

  • 一、简介 主要用来操作黄页模块的相关更新操作 ! 1、仅当启用、关闭伪静态时,请批量更新所有链接地址,除此,不需要更新 。 2、启用伪静态在模块配置里。 3、更新企业URL,只需选中企业库模型即可,不必选分类。 二、功能演示

  • 问题内容: 我想用Django更新表格-原始SQL中的内容如下: 我的第一个结果是这样的-但这很讨厌,不是吗? 有没有更优雅的方式? 问题答案: UPD Django 2.2版本现在具有bulk_update。 请参阅以下django文档部分 一次更新多个对象 简而言之,你应该可以使用: 你还可以使用F对象来执行诸如增加行数之类的操作: 请参阅文档:https : //docs.djangopro

  • 问题内容: 我有一个包含一千万行的表,需要与另一个表连接并更新所有数据。一小时要花费超过1个小时的时间,这使我的事务日志增加了10+ GB。是否有另一种方法可以增强此性能? 我相信,每次更新后,都会检查索引和约束并记录所有信息。有没有一种方法可以告诉SQL Server仅在更新完成后才检查约束并最小化记录更新操作? 我的查询如下。我已经修改了一些名称,以便于阅读。 编辑: 如注释中所述,表定义将类

  • 我正在写一个数据挖掘程序,可以批量插入用户数据。 当前SQL只是一个普通的批量插入: 如果发生冲突,如何进行更新?我试过: 但它抛出

  • 问题内容: 有没有办法在续集中进行批量追加。另外,我可以指定用于检查重复项的键吗? 我尝试了以下操作,但没有成功: 批量创建效果不错。上面的语句总是在数据库中创建新条目。 问题答案: 来自官方sequelizejs参考。 可以通过使用该选项来完成。 例如这样: 是一个字段数组,当主键(或可能是唯一键)与行匹配时将更新。确保您的模型中至少有一个唯一字段(让我说id),这两个字段中都包含upsert。