Python 2.7 涉及局部处理。@BenjaminK我不知道你从文档中的注释中逐字复制了文本:)是的,因为我自己也在寻找解决方案,但仍然没有找到一种简单的方法来更新数据并忽略重复项:)我发现的一个解决方法是,如果数据可以加载到数据框中,就不用直接使用CSV,gspread允

Python 2.7 涉及局部处理。@BenjaminK我不知道你从文档中的注释中逐字复制了文本:)是的,因为我自己也在寻找解决方案,但仍然没有找到一种简单的方法来更新数据并忽略重复项:)我发现的一个解决方法是,如果数据可以加载到数据框中,就不用直接使用CSV,gspread允,python-2.7,google-spreadsheet-api,google-sheets-api,Python 2.7,Google Spreadsheet Api,Google Sheets Api,涉及局部处理。@BenjaminK我不知道你从文档中的注释中逐字复制了文本:)是的,因为我自己也在寻找解决方案,但仍然没有找到一种简单的方法来更新数据并忽略重复项:)我发现的一个解决方法是,如果数据可以加载到数据框中,就不用直接使用CSV,gspread允许您和您可以创建多个这样的工作表。感谢您提供了一个很好的示例。您的代码将覆盖工作表上所有现有的.csv数据。有没有办法只添加新项目和跳过重复项目?@BenjaminK这意味着您正在执行合并。我猜想,您需要一些更复杂的逻辑,而不是跳过重复项,因为


涉及局部处理。@BenjaminK我不知道你从文档中的注释中逐字复制了文本:)是的,因为我自己也在寻找解决方案,但仍然没有找到一种简单的方法来更新数据并忽略重复项:)我发现的一个解决方法是,如果数据可以加载到数据框中,就不用直接使用CSV,gspread允许您和您可以创建多个这样的工作表。感谢您提供了一个很好的示例。您的代码将覆盖工作表上所有现有的
.csv
数据。有没有办法只添加新项目和跳过重复项目?@BenjaminK这意味着您正在执行合并。我猜想,您需要一些更复杂的逻辑,而不是跳过重复项,因为覆盖旧条目的重复项不会影响您的数据。我建议,如果您需要一些更复杂的逻辑,不要使用gsheetapi作为数据库引擎。取而代之的是:拉取你的数据,在本地处理,然后再次上传整个内容。尽管如此,为了解决你的问题。会有帮助的。要使用上述示例中的
粘贴数据
,您必须结合使用
验证
更新
附加
。谢谢!我的问题是
“rowIndex”
“columnIndex”
必须作为字符串中的整数发送。谢谢
def preprocess(table):
    table.to_csv('pivoted.csv') # I use Pandas but use whatever you'd like
    _file = open('pivoted.csv')
    contents = _file.read()
    array = contents.split('\n')
    master_array = []
    for row in array:
        master_array.append(row.split(','))
    return master_array
body = {
      'values': newValues
}

    result2 = service.spreadsheets().values().update(spreadsheetId=spreadsheetId, range=rangeName + str(len(values) + start + 1), valueInputOption="USER_ENTERED", body=body).execute()
import gspread

# Check how to get `credentials`:
# https://github.com/burnash/gspread

gc = gspread.authorize(credentials)

# Read CSV file contents
content = open('file_to_import.csv', 'r').read()

gc.import_csv('<SPREADSHEET_ID>', content)
def pasteCsv(csvFile, sheet, cell):
    '''
    csvFile - path to csv file to upload
    sheet - a gspread.Spreadsheet object
    cell - string giving starting cell, optionally including sheet/tab name
      ex: 'A1', 'MySheet!C3', etc.
    '''
    if '!' in cell:
        (tabName, cell) = cell.split('!')
        wks = sheet.worksheet(tabName)
    else:
        wks = sheet.sheet1
    (firstRow, firstColumn) = gspread.utils.a1_to_rowcol(cell)

    with open(csvFile, 'r') as f:
        csvContents = f.read()
    body = {
        'requests': [{
            'pasteData': {
                "coordinate": {
                    "sheetId": wks.id,
                    "rowIndex": firstRow-1,
                    "columnIndex": firstColumn-1,
                },
                "data": csvContents,
                "type": 'PASTE_NORMAL',
                "delimiter": ',',
            }
        }]
    }
    return sheet.batch_update(body)