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)