Итак, вот проблема, с которой я сталкиваюсь.Я создал скрипт Python, который берет данные из первого столбца моего Google Sheet, передает их в другой API, получает ответ, а затем добавляет некоторые поля из этого ответа в следующие столбцы этой строки.Проблема в том, что каждый раз, когда он обновляет поля, он перезаписывает все только в первом ряду и фактически не перемещается во второй ряд.
Например, если столбец A1 имеет значение x и он декодируется в b, c, d.Затем он записывает bcd в столбцы B1, C1 и D1 соответственно.Это все хорошо.Но когда он перемещается в A2, он записывает декодированные значения для этого в B1, C1 и D1, а не перемещается в B2, C2, D2.Поэтому он перезаписывает последние добавленные значения.
# I've called the Sheets API here
SPREADSHEET_ID = 'ID HERE'
RANGE_NAME = 'A2:A'
result = service.spreadsheets().values().get(spreadsheetId=SPREADSHEET_ID,
range=RANGE_NAME).execute()
values = result.get('values', [])
i=1
if not values:
print('No data found.')
else:
#values
for row in values:
try:
# Print column A, which corresponds to indice 0 in the VIN Sheet.
print('%s' % (row[0]))
URL = "http://vpic.nhtsa.dot.gov/api/vehicles/DecodeVinValues/"
VIN=row[0]
PARAMS={VIN:'format=json'}
r=requests.get(url=URL + VIN, params={'format': 'json'})
result=r.json()
#print (result)
print ("Make: ", result['Results'][0]['Make'])
print ("Model: ", result['Results'][0]['Model'])
print ("Year: ", result['Results'][0]['ModelYear'])
print ("Engine Manufacturer: ", result['Results'][0]['EngineManufacturer'])
i=i+1
text=r.text
values = [
[ result['Results'][0]['Make'],result['Results'][0]['Model'],result['Results'][0]['ModelYear'],result['Results'][0]['EngineManufacturer']
]
]
body = {
'values' : values
}
result1 = service.spreadsheets().values().update(spreadsheetId=SPREADSHEET_ID, range='B:E',valueInputOption='RAW', body=body).execute()
except IndexError, e:
print("Row has no index")
Может кто-нибудь сказать, пожалуйста, что я делаю неправильно?Я попытался использовать функцию append () вместо update (), но это, очевидно, начинает добавлять результаты в нижней части таблицы.