Лишняя кавычка в результате обработки запроса google sheets api
Дата передается с одной кавычкой в начале, хотя запрос идёт без кавычки. Все остальные поля передаются так как и должны были.
import gspread
sa = gspread.service_account('./credentials.json')
sh = sa.open('Reports')
main = sh.worksheet('main')
data = [["31.03.2022", 'Test', 0, 0, 0, 0, 0, 0, 0, 0, 'Test', 'Test']]
def add_row(result: list):
all_colls = main.col_values(1)
i = len(all_colls)+1
cell_length = f"A{str(i)}:L{str(i+ len(result) -1)}"
main.update(cell_length, result)
add_row(data)
Ответы (2 шт):
Автор решения: A_Vaclav
→ Ссылка
Проблема не в коде, а в Googlesheets(Excel)... В определенных случаях при передаче данных из других программ добавляется (невидимый) одиночный апостроф перед строкой, который указывает, что данная информация - текстовая. В конкретном случае распознана дата, но как текст...
Но! Это совсем не значит, что с вашим кодом все в порядке.
Автор решения: Incover
→ Ссылка
import gspread
sa = gspread.service_account('./credentials.json')
sh = sa.open('Reports')
main = sh.worksheet('main')
data = [["31.03.2022", 'Test', 0, 0, 0, 0, 0, 0, 0, 0, 'Test', 'Test']]
def add_row(result: list):
all_colls = main.col_values(1)
i = len(all_colls)+1
cell_length = f"A{str(i)}:L{str(i+ len(result) -1)}"
main.update(cell_length, result, value_input_option='USER_ENTERED')
add_row(data)
В gspread есть свойство value_input_option='USER_ENTERED' которая решает данную проблему.
