2017-02-01 5 views
0

Я хотел бы постоянно обновлять/переписывать на лист Google. Я не могу просто обновить его, хотя, не очищая старый лист, потому что когда-то обновление имеет меньше строк, тогда предыдущие и старые строки остаются на листе.Google Таблицы API Python - Очистить листок

Протокол перечислены на developer page таким образом:

{ 
    "requests": [ 
    { 
     "updateCells": { 
     "range": { 
      "sheetId": sheetId 
     }, 
     "fields": "userEnteredValue" 
     } 
    } 
    ] 
} 

Перевод на питона будет выглядеть следующим образом, я думаю:

requests = [{ 'updateCells': { 'range': { 'sheetId': spreadsheet_id }, 'fields': 'userEnteredValue' } }] 

body = { 'requests': requests } 
spreadsheet_id='[uniqueIDhere]' 

result = service.spreadsheets().values().batchUpdate(spreadsheetId=spreadsheet_id, body=body).execute() 

Который возвращает ошибку:

googleapiclient.errors .HttpError: https://sheets.googleapis.com/v4/spreadsheets/[uniqueIDhere]/values:batchUpdate?alt=json возвращено "Неверная полученная полезная нагрузка JSON. Неизвестные имена" запросы ": Не удается найти поле. ">

Кажется странным, что« запросы »недействительны, поскольку они указаны прямо там, в протоколе. В любом случае, кто-нибудь еще заставляет это работать? Благодарю. - Ясон

ответ

2

Найдено другое method:

rangeAll = '{0}!A1:Z'.format(sheetName) 
body = {} 
resultClear = service.spreadsheets().values().clear(spreadsheetId=spreadsheet_id, range=rangeAll, 
                 body=body).execute() 

Это прекрасно работает. Все еще интересно, почему запрос-updateCells-протокол не работает.

1
result = service.spreadsheets().values().batchUpdate(...

Должно быть:

result = service.spreadsheets().batchUpdate(...

Взял меня слишком долго, чтобы заметить ту же самую ошибку в моем коде ...