Beautiful Soup и GSpread добавляют данные в Google Sheet вместо замены

У меня есть моя первая программа проверки цен, которая отслеживает 50 продуктов и извлекает данные, она работает в 3 часа ночи каждый день. На данный момент проверенные продукты добавляются к существующим данным, которые, очевидно, создают дубликаты, поэтому через несколько дней я получу 50, 100, 150 строк...

Как я могу заставить скрипт Python заменить или очистить существующие данные, чтобы в электронной таблице всегда было только 50 продуктов?

Вот верхняя часть кода:

from selenium import webdriver 
import time
from bs4 import BeautifulSoup


import json
import gspread
#from oauth2client.client import SignedJwtAssertionCredentials
from oauth2client.client import SignedJwtAssertionCredentials
from json import load
import urllib2

browser = webdriver.PhantomJS()

product_details = []



def connect_to_spreadsheet():
    json_key = json.load(open('0b6bb6f4e5.json'))
    scope = ['https://spreadsheets.google.com/feeds']
    credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'].encode(), scope)
    #credentials = AssertionCredentials(json_key['client_email'], json_key['private_key'].encode(), scope)
    gc = gspread.authorize(credentials)
    wks = gc.open("TestSheet")

    worksheet = wks.worksheet('automated')
    last_row = worksheet.row_count 
    last_col = worksheet.col_count - 1 

    for each_row_data in product_details:
        try:
            worksheet.append_row(each_row_data)
        except:
            print "Could not add row data", each_row_data

person me9867    schedule 08.02.2017    source источник
comment
Нашел clear() в документации Gspread, но не уверен, как реализовать в приведенном выше коде gspread.readthedocs.io/en/latest/#gspread.Worksheet.clear   -  person me9867    schedule 09.02.2017
comment
и немного clear() в этом github.com/burnash/gspread/blob /мастер/тесты/test.py   -  person me9867    schedule 09.02.2017


Ответы (1)


Clear() очищает лист, но сгенерированное содержимое начинается с того места, где оно было очищено.

worksheet = wks.worksheet('automated')
worksheet.clear()

Но ясно, что функция() требуется, просто нужны данные для запуска в A2

person me9867    schedule 08.02.2017