首页 文章

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

提问于
浏览 1527
1

Google表格API v4:

Python快速入门显示了如何从Google电子表格中获取数据:

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

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

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

我尝试过以下内容,但对'values'获取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 回答

  • 0

    我对python不好,但我遇到了与java客户端相同的问题,希望这个解决方案能有所帮助 . 我试着只加载范围

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

    正如文件所述,但没有结果 . 当我找到一种方法 - 进行batchGet时,您应该指定要从电子表格中获取的范围列表 . 请注意这个 setRange() invokaion:

    final ArrayList<String> RANGES = new ArrayList<>();
            RANGES.add("Sheet1");
            RANGES.add("Sheet2");
    BatchGetValuesResponse response = service.spreadsheets().values().batchGet
                        (spreadsheetID).setRanges(RANGES).execute();
    
  • 0

    如果有人在Google上找到这个,那么答案是(就像NoisyFlasher暗示的那个Java示例,就像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'])
    

相关问题