【发布时间】:2021-05-12 02:54:25
【问题描述】:
出于某种原因,尽管指定了我的范围,但我的列表会更新 D2 单元格,而不是执行它下面的后续单元格。例如,当我运行我的代码时,单元格 D2 将被适当地更新为“A”。然后当它进行另一个循环时,它没有移动到 D3,而是再次使用“B”更新 D2。如此重复,直到我只剩下 for 循环生成的最后一个值。
附上我的代码,抱歉我是新手。
import requests
from googleapiclient.discovery import build
from google.oauth2 import service_account
consumer_key = 'XXXXXXXXXXXXXXXXXXXX'
SERVICE_ACCOUNT_FILE = 'keys.json'
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
creds = None
creds = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
SAMPLE_SPREADSHEET_ID = 'XXXXXXXXXXXXXXXXXXX'
service = build('sheets', 'v4', credentials=creds)
tickerlist= ['CUE', 'FB', 'AMD']
# Call the Sheets API
sheet = service.spreadsheets()
result = sheet.values().get(spreadsheetId=SAMPLE_SPREADSHEET_ID, range = 'Sheet1!D2:D').execute()
values = result.get('values',[])
#open payload (this is where I'm getting my list from)
payload = {'apikey':consumer_key,
'periodType':'day',
'frequencyType':'minute',
'frequency':'30',
'period':'1',
'needExtendedHoursData':'false',
'startDate': '1620619200000'}
#for OPN loop
for i in tickerlist:
#definitions
endpoint = r'https://api.tdameritrade.com/v1/marketdata/{}/pricehistory'.format(i)
content = requests.get(url=endpoint, params = payload)
emptlist = []
#turn data into OPN JSON
data = content.json()
del data['symbol']
del data['empty']
for key in data:
for nested_dict in data[key]:
if 'volume' in nested_dict:
del nested_dict['volume']
if 'close' in nested_dict:
del nested_dict['close']
if 'high' in nested_dict:
del nested_dict['high']
if 'low' in nested_dict:
del nested_dict['low']
if 'datetime' in nested_dict:
del nested_dict['datetime']
emptlist += nested_dict.values()
llist = [emptlist]
#isolating first element
fopenlist = llist[0]
openlist = fopenlist[0]
trueopenlist = [[openlist]]
#plugging OPN into sheets
request = service.spreadsheets().values().update(spreadsheetId=SAMPLE_SPREADSHEET_ID,
range='Sheet1!D2:D', valueInputOption='USER_ENTERED', body={'values': actualopenlist}).execute()
非常感谢任何帮助。
【问题讨论】:
-
在您的脚本中,似乎没有使用电子表格.values.append 方法。如果我误解了你的剧本,我深表歉意。
标签: python python-3.x google-sheets google-sheets-api