【发布时间】:2019-01-15 17:50:52
【问题描述】:
我正在从网络上抓取一些数据并将其写入 Google 电子表格。 经过长时间的 DuckDuckGo'ing 我正在寻求您的帮助。
我用于此脚本的库:
from __future__ import print_function
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
import requests
from bs4 import BeautifulSoup
from datetime import date, timedelta
下面的代码在for i in range(3) 循环中。
即使我手动写range='Sheet1!E:G',它仍然从A列开始写。
当我用另一个工作表名称替换工作表名称时,它会将值附加到该特定工作表,但仍未使用指定范围。我尝试了各种范围,但仍然不行。
SCOPES = 'https://www.googleapis.com/auth/spreadsheets'
spreadsheet_id = '*******'
store = file.Storage('token.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
creds = tools.run_flow(flow, store)
service = build('sheets', 'v4', http=creds.authorize(Http()))
values = [
[
max_temp, avg_temp, min_temp
]
]
body = {
'values': values
}
range_list = ['B:D','E:G','H:J']
range_name = f'Sheet1!{range_list[i]}'
sheet = service.spreadsheets()
result = sheet.values().append(
spreadsheetId=spreadsheet_id, range=range_name,
valueInputOption='USER_ENTERED', body=body).execute()
求助!!!
【问题讨论】:
-
我的回答是否向您展示了您想要的结果?你能告诉我吗?这对我学习也很有用。如果这可行,与您有相同问题的其他人也可以将您的问题作为可以解决的问题。如果您对我的回答有疑问,我深表歉意。到时候,可以问一下你现在的情况吗?我想学习解决你的问题。
-
非常感谢您的详细回答@Tanaike!对不起,我很忙,好几天都不能在这个项目上工作。我实际上需要它像它所说的那样工作。所以我不想使用任何解决方法。我想我会尝试使用“更新”而不是“附加”,直到 Google 解决了这个问题。 (或者告诉我们使用他们的 API 的正确方法)
-
感谢您的回复。如果我误解了您的回复,请告诉我。我的回答对您的情况没有用,因为您想使用
values().append()。如果我的理解是正确的,我认为我对此表示歉意,我必须删除我的答案。如果我误解了您的回复,我深表歉意。顺便问一下tell us the right way to use their API的事吗? -
我说的是 Google 代表 :)
-
感谢您的回复。对于你的问题,我有什么可以做的吗?如果我的回答对您的情况没有用。我必须道歉并修改它。
标签: python-3.x google-sheets-api