尝试将电子邮件写入谷歌表单时出错


import gspread
emails = ['test@test.com' , 'test1@test1.com']

def api(key):
gc = gspread.service_account(filename='Auth.json')
sh = gc.open_by_key(key)
worksheet = sh.get_worksheet(1)
worksheet.insert_row(["Emails"], 1)
worksheet.insert_rows(emails, 2)

api("myapi")

错误:我无法将电子邮件列表写入谷歌表单行,因为我一直收到以下错误:

gspread.exceptions.APIError: {'code': 400, 'message': 'Invalid value at 'data.values[0]' (type.googleapis.com/google.protobuf.ListValue), "test@test.com"nInvalid value at 'data.values[1]' (type.googleapis.com/google.protobuf.ListValue), "test1@test1.com"', 'status': 'INVALID_ARGUMENT', 'details': [{'@type': 'type.googleapis.com/google.rpc.BadRequest', 'fieldViolations': [{'field': 'data.values[0]', 'description': 'Invalid value at 'data.values[0]' (type.googleapis.com/google.protobuf.ListValue), "test@test.com"'}, {'field': 'data.values[1]', 'description': 'Invalid value at 'data.values[1]' (type.googleapis.com/google.protobuf.ListValue), "test1@test1.com"'}]}]}

我相信你的目标如下。

  • 您希望将['test@test.com' , 'test1@test1.com']的值放入插入的行中

在这种情况下,我认为在这种情况中,['test@test.com' , 'test1@test1.com']需要是像[['test@test.com'], ['test1@test1.com']]一样的二维数组。我认为错误的原因就是因为这个。因此,请修改如下,然后再次测试。

发件人:

emails = ['test@test.com' , 'test1@test1.com']

收件人:

emails = [['test@test.com'], ['test1@test1.com']]

参考文献:

  • insert_rows

最新更新