【问题标题】:Google Sheets API v4 Method: spreadsheets.values.append only updates one cellGoogle Sheets API v4 方法:电子表格.values.append 只更新一个单元格
【发布时间】: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


【解决方案1】:

回答

使用Method: spreadsheets.values.append 将值附加到电子表格

输入范围用于搜索现有数据并在该范围内查找“表”。值将附加到表格的下一行,从表格的第一列开始。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2020-10-13
    相关资源
    最近更新 更多