1

Google Sheets API v4:API-интерфейс Python Google Таблицы v4: Как сделать пакетное получение и пакетное обновление листов Google?

Python Quickstart показывает, как получить данные из таблицы Google:

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]) 
+0

Вы можете разместить свой код или фрагмент код, как авторизация и основной код, который использует spreadsheets.values.batchUpdate/batchGet, и ошибка журналы тоже. Благодаря! –

ответ

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

Я попытался передать Java в синтаксис Python (см. Выше), но безуспешно. –

+0

Я имел в виду, что, вероятно, вы должны установить диапазоны с помощью дополнительной функции - не просто передать два параметра для get(). Думаю, я проверю. – NoisyFlasher

+1

Кроме того, вот пример batchUpdate(): https://developers.google.com/sheets/guides/batchupdate#example – NoisyFlasher

0

Если кто-то считает, что это на Google, ответ (как NoisyFlasher подразумеваемые с этим примером Java, и как ОР был на пути к) просто предоставить диапазоны в виде списка Python. Тем не менее, результат является ДИКТ, а не объекты:

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'])