Я пытаюсь обновить всю электронную таблицу, используя Python, Google Seets API, v4.
Я сделал функцию на основе API для обновления базы данных, но выдает следующую ошибку:
TypeError: update_values() got multiple values for argument 'range'
Функции структурированы следующим образом:
def update_values(self, range, values):
'''
documentation: https://developers.google.com/sheets/api/guides/values
values = [
[
# Cell values ...
],
# Additional rows ...
]
'''
body = {
'values': values
}
result = self.service.spreadsheets().values().update(
spreadsheetId=self.sheet_id,
range=range,
valueInputOption='USER_ENTERED',
body=body).execute()
print('{0} cells updated.'.format(result.get('updatedCells')))
Функция исполнения следующая:
def update(self,values):
pprint(self.SHEET_NAME[1])
self.gsheets.update_values(self,
range='{}!A1:AD2000'.format(self.SHEET_NAME[1]),
values=values
)
Дополнительные данные для понимания кода:
SHEET_NAME[1]='sheet_x'
gsheets.update_values
— первая функция update_values()
в классе gsheets
range='{}!A1:AD2000'.format(self.SHEET_NAME[1]
Похоже, что update_values
— это метод, и у вас есть экземпляр его класса в self.gsheets
. Python автоматически добавляет self
при вызове метода экземпляра. Когда вы вызываете update_values(self, range=..., ...)
, то self
, которое вы вводите, на самом деле является вторым параметром «диапазон». Просто оставьте этот параметр.
self.gsheets.update_values(range='{}!A1:AD2000'.format(self.SHEET_NAME[1]),
values=values
)
Я не уверен. Это похоже на проблему с декодированием строки JSON. Можете ли вы распечатать сам JSON, чтобы увидеть, что не так? np.NaN
является числом с плавающей запятой и поддерживается JSON. Итак, json.loads("NaN")
работает. "User R\u ^"
выглядит очень странно. Это не похоже на допустимый python (побег \u unicode должен иметь 4 следующих шестнадцатеричных символа) или json. Если вы сможете получить достаточно подробностей, это будет новый вопрос для stackoverflow.
range
затеняет встроенныйrange
объект, я бы начал с изменения этого имени.