API таблиц Google - Python - возвращаемое значение ячейки без скобок - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь прочитать из ячейки на одном из загруженных мною листов, чтобы добавить значения в презентацию. Однако, когда я использую код

valueCount = SHEETS.spreadsheets().values().get(range='C7',
        spreadsheetId=ssID).execute().get('values')

, возвращаемое значение заключено в двойные скобки и одинарные кавычки, например, если бы ячейка C7 имела значение 350, ответ этого вызова выше будет выводиться как [[' 350 ']]

Я хочу получить только 350. Есть ли способ сделать это из API? Или как-нибудь очистить строку в Python? Честно говоря, я бы предпочел, чтобы он был возвращен очищенным с самого начала.

Странно то, что при воспроизведении примера на Как создавать и заполнять таблицы в слайдах Google , это на самом деле без проблем возвращает только номер, но это точно такой же вызов.

1 Ответ

2 голосов
/ 14 июля 2020

В методе spreadsheets.values.get в Sheets API значения возвращаются в виде двухмерного массива. Это спецификация. Кроме того, по умолчанию valueRenderOption равно FORMATTED_VALUE. Я думаю, что причина [["350"]] в них.

В вашем случае вы извлекаете значение из одной ячейки. В этом случае значение всегда [[###]]. Итак, чтобы получить 350 из C7 на 1-й вкладке электронной таблицы Google, как насчет следующей модификации?

Измененный скрипт:

valueCount = SHEETS.spreadsheets().values().get(range='C7',spreadsheetId=ssID, valueRenderOption='UNFORMATTED_VALUE').execute().get('values')
res = valueCount[0][0]
  • В этом В данном случае используется valueRenderOption='UNFORMATTED_VALUE'.
  • valueCount равно [[350]].
  • Таким образом, res равно 350, а тип - int.

Ссылки:

...