当我尝试将数字附加到 Python 中的列表并将该列表发送到 Google 表格列时出现错误 'Invalid values[1][0]: list_value'
Error 'Invalid values[1][0]: list_value' when i try append numbers to a list in Python and send that list to a Google Sheets column
我要通过 Python 发送到 spreadsheet 的列表是:
para_enviar_conjunto = [[21], [79]]
此列表是基于此代码创建的(我没有添加 sheet id,因为我试图保留这段代码):
import requests
from Google import Create_Service
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
CLIENT_SECRET_FILE = 'client_secrets.json'
API_NAME = 'sheets'
API_VERSION = 'v4'
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
spreadsheet_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
spreadsheets_match_id = ['9647082','9979984']
spreadsheets_match_minute = [27,85]
para_enviar_conjunto = []
for (id,minute) in zip(spreadsheets_match_id, spreadsheets_match_minute):
url = f'XXXXXXXXXXXXXXXXXXXXXX/{id}/XXXXXXXXXXXXXXXXXXXXXX'
response = requests.get(url, headers=headers).json()
incidents = response['incidents']
list_of_goals = []
if any(i['incidentType'] == 'goal' for i in response['incidents']):
for incident in incidents:
if (incident['incidentType'] == 'goal' and incident['time'] <= minute):
list_of_goals.append(incident['time'])
else:
list_of_goals.append([0])
if (len(list_of_goals) == 0):
list_of_goals.append([0])
else:
pass
para_enviar_conjunto.append([list_of_goals[0]])
print(para_enviar_conjunto)
worksheet_name = 'MaxLevel'
cell_range_insert = 'AC2:AC'
values = (
(para_enviar_conjunto),
)
value_range_body = {
'majorDimension': 'ROWS',
'values': values
}
service.spreadsheets().values().append(
spreadsheetId=spreadsheet_id,
valueInputOption='USER_ENTERED',
range=worksheet_name + '!' + cell_range_insert,
body=value_range_body
).execute()
print("Fim")
我正在尝试将这些值发送到 google 传播sheet,但是在尝试发送时出现此错误:
returned "Invalid values[1][0]: list_value {
values {
number_value: 21.0
}
}". Details: "Invalid values[1][0]: list_value {
values {
number_value: 21.0
}
}
">
我应该怎么做才能解决这个问题?
在您的脚本中,values = ((para_enviar_conjunto),)
是 ([[21], [79]],)
。我认为这可能是您遇到问题的原因。那么在这种情况下,下面的修改呢?
发件人:
value_range_body = {
'majorDimension': 'ROWS',
'values': values
}
收件人:
value_range_body = {
'majorDimension': 'ROWS',
'values': para_enviar_conjunto
}
- 在这种情况下,您可以删除
values = ((para_enviar_conjunto),)
。
我要通过 Python 发送到 spreadsheet 的列表是:
para_enviar_conjunto = [[21], [79]]
此列表是基于此代码创建的(我没有添加 sheet id,因为我试图保留这段代码):
import requests
from Google import Create_Service
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
CLIENT_SECRET_FILE = 'client_secrets.json'
API_NAME = 'sheets'
API_VERSION = 'v4'
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
service = Create_Service(CLIENT_SECRET_FILE, API_NAME, API_VERSION, SCOPES)
spreadsheet_id = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
spreadsheets_match_id = ['9647082','9979984']
spreadsheets_match_minute = [27,85]
para_enviar_conjunto = []
for (id,minute) in zip(spreadsheets_match_id, spreadsheets_match_minute):
url = f'XXXXXXXXXXXXXXXXXXXXXX/{id}/XXXXXXXXXXXXXXXXXXXXXX'
response = requests.get(url, headers=headers).json()
incidents = response['incidents']
list_of_goals = []
if any(i['incidentType'] == 'goal' for i in response['incidents']):
for incident in incidents:
if (incident['incidentType'] == 'goal' and incident['time'] <= minute):
list_of_goals.append(incident['time'])
else:
list_of_goals.append([0])
if (len(list_of_goals) == 0):
list_of_goals.append([0])
else:
pass
para_enviar_conjunto.append([list_of_goals[0]])
print(para_enviar_conjunto)
worksheet_name = 'MaxLevel'
cell_range_insert = 'AC2:AC'
values = (
(para_enviar_conjunto),
)
value_range_body = {
'majorDimension': 'ROWS',
'values': values
}
service.spreadsheets().values().append(
spreadsheetId=spreadsheet_id,
valueInputOption='USER_ENTERED',
range=worksheet_name + '!' + cell_range_insert,
body=value_range_body
).execute()
print("Fim")
我正在尝试将这些值发送到 google 传播sheet,但是在尝试发送时出现此错误:
returned "Invalid values[1][0]: list_value {
values {
number_value: 21.0
}
}". Details: "Invalid values[1][0]: list_value {
values {
number_value: 21.0
}
}
">
我应该怎么做才能解决这个问题?
在您的脚本中,values = ((para_enviar_conjunto),)
是 ([[21], [79]],)
。我认为这可能是您遇到问题的原因。那么在这种情况下,下面的修改呢?
发件人:
value_range_body = {
'majorDimension': 'ROWS',
'values': values
}
收件人:
value_range_body = {
'majorDimension': 'ROWS',
'values': para_enviar_conjunto
}
- 在这种情况下,您可以删除
values = ((para_enviar_conjunto),)
。