尝试向 google sheet 发送电子邮件时出错

error occurred while trying to write emails to google sheet

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")

错误: 我无法将电子邮件列表写入 google sheet 行,因为我不断收到以下错误:

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']]

参考文献: