我正在开发一个Python2.7
脚本,该脚本分析SQL表中的数据,最后生成一个CSV文件。
生成文件后,我将登录到我的google sheet帐户,并使用导入选项将我的CSV文件导入到google电子表格中
手工劳动有点愚蠢,我想把这个能力添加到我的脚本中。
因此,我遵循了这个指南,Python快速入门,并且能够完成所有步骤。
然后,我遵循GoogleSheetsAPI参考并研究了方法:电子表格。创造如果我理解正确,它不提供从文件导入的选项。
似乎没有用于导入功能的API。
如何使用Google Sheets API V4导入CSV文件?他们是我遗漏的一个例子/参考吗?
萨姆·柏林回答的另一个选择。如果你使用Python,你可以使用驱动器API通过gdia导入一个CSV文件。这里有一个例子:
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)
相关问题:使用gspread将CSV上传到谷歌表单
我花了几个小时试着让其他任何答案都起作用。库不能很好地解释身份验证,也不能使用谷歌提供的处理凭证的方法。另一方面,Sam的回答没有详细说明使用API的细节,这有时可能会令人困惑。因此,下面是将CSV上传到GSheet的完整方法。它使用了Sam和CapoChino的答案以及我自己的一些研究。
希望现在您已经存储了凭据,所以让我们转到实际代码
import pickle
from googleapiclient.discovery import build
SPREADSHEET_ID = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms' # Get this one from the link in browser
worksheet_name = 'Sheet2'
path_to_csv = 'New Folder/much_data.csv'
path_to_credentials = 'Credentials/token.pickle'
# convenience routines
def find_sheet_id_by_name(sheet_name):
# ugly, but works
sheets_with_properties = API \
.spreadsheets() \
.get(spreadsheetId=SPREADSHEET_ID, fields='sheets.properties') \
.execute() \
.get('sheets')
for sheet in sheets_with_properties:
if 'title' in sheet['properties'].keys():
if sheet['properties']['title'] == sheet_name:
return sheet['properties']['sheetId']
def push_csv_to_gsheet(csv_path, sheet_id):
with open(csv_path, 'r') as csv_file:
csvContents = csv_file.read()
body = {
'requests': [{
'pasteData': {
"coordinate": {
"sheetId": sheet_id,
"rowIndex": "0", # adapt this if you need different positioning
"columnIndex": "0", # adapt this if you need different positioning
},
"data": csvContents,
"type": 'PASTE_NORMAL',
"delimiter": ',',
}
}]
}
request = API.spreadsheets().batchUpdate(spreadsheetId=SPREADSHEET_ID, body=body)
response = request.execute()
return response
# upload
with open(path_to_credentials, 'rb') as token:
credentials = pickle.load(token)
API = build('sheets', 'v4', credentials=credentials)
push_csv_to_gsheet(
csv_path=path_to_csv,
sheet_id=find_sheet_id_by_name(worksheet_name)
)
直接使用batchUpdate
的好处是它可以在一秒钟内上传数千行。在低级别gspread
也执行相同的操作,并且应具有相同的性能。还有大熊猫。
p、 代码是用python3.5
测试的,但是这个线程似乎最适合提交给。
导入gCSV文件有两个选项。可以使用Drive API从CSV创建电子表格,也可以使用Sheets API创建空电子表格,然后使用带有PasteDataRequest的spreadsheets.batchUpdate添加CSV数据。
我正在努力使用mongoimport从CSV文件导入Mongodb的ObjectId: 我尝试了我能想到的所有组合和转义方法,但无法从CSV正确导入ObjectId。 首先,我尝试准确地将从MongoDB导出的内容导入到CSV。我正在使用MongoDB 2.2.1。 我刚刚创建了两个集合,并在另一个文档中引用了一个文档的_id: 然后我在shell中使用了mongoexport命令: 生成的CSV
我在Postgres中有一个只有两列的表 CSV文件包含以下列: 我怎么能复制gid和名称只从这个文件使用?
效率不是很高。
本文向大家介绍R导入.csv文件,包括了R导入.csv文件的使用技巧和注意事项,需要的朋友参考一下 示例 使用base R导入 可以使用read.csv来包装逗号分隔的值文件(CSV),该文件可以包装read.table,但可用于sep = ","将分隔符设置为逗号。 用户友好选项file.choose允许浏览目录: 笔记 与不同read.table,read.csv默认为header = TRU
问题内容: 我有一个CSV文件。它包含140万行数据,因此我无法在Excel中打开该csv文件,因为其限制约为100万行。 因此,我想将此文件导入MySQL工作台中。此csv文件包含以下列 我正在尝试在MySQL工作台中创建一个名为“虚拟”的表,其中包含诸如 CSV文件名为。我在工作台中的代码是这样的: 但我收到类似的错误 问题答案: 我想您缺少ENCLOSED BY子句 并指定csv文件的完整路