#python #google-sheets #google-sheets-api #gspread
Вопрос:
Я пытаюсь добавить этот CSV-файл после последней строки с данными в этом листе Google. Но я могу только перезаписать существующие данные.
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ["https://spreadsheets.google.com/feeds", 'https://www.googleapis.com/auth/spreadsheets',
"https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive"]
credentials = ServiceAccountCredentials.from_json_keyfile_name(
'key.json', scope)
client = gspread.authorize(credentials)
spreadsheet = client.open('upload_data')
with open('gmt2.csv', 'r') as file_obj:
content = file_obj.read()
client.import_csv(spreadsheet.id, data=content)
Ответ №1:
При import_csv
использовании создается впечатление, что электронная таблица перезаписывается данными CSV. Я подумал, что это может быть причиной вашей проблемы. В вашей ситуации, как насчет использования append_rows
метода? Когда ваш сценарий изменяется, он становится следующим.
Измененный сценарий:
client = gspread.authorize(credentials)
# I modified below script.
sheetName = "Sheet1" # Please set the sheet name you want to append the CSV data.
spreadsheet = client.open('upload_data')
worksheet = spreadsheet.worksheet(sheetName)
content = list(csv.reader(open('gmt2.csv')))
worksheet.append_rows(content, value_input_option="USER_ENTERED")
- В данном случае
import csv
используется.