Python requests. TypeError: a bytes-like object is required

Python requests. TypeError: a bytes-like object is required

我正在尝试创建一个脚本,该脚本遍历 CSV 的每一行并发布到 API 调用,但我收到类型错误:需要类似字节的对象,而不是 'dict' .

CSV 只有 3 列。通常我可以传递对象行 [2] 等,但我不明白为什么会发生在这里或如何解决它?

谢谢

import csv
import requests
from time import sleep

with open('/Users/me/Downloads/mailgun_test.csv',newline='') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    for row in readCSV:
            files = {
            'from': ('Sender <sender@sender.com>'),
            'to': str(row[0]),
            'subject': ('Your '+str(row[2])+' Verificiation Has Expired'),
            'template': ('tpp_expired'),
            'h:X-Mailgun-Variables': ({"company_name": str(row[1]), "verification_file_type": str(row[2])})
            }

            r = requests.post('https://api.mailgun.net/v3/domain/messages', files=files, auth=('api', 'key................'))
            print("=========================")
            print(r)
            print(r.text)
            sleep(2)```

发送 post 调用正文中的数据。 可以参考文档中的例子:https://documentation.mailgun.com/en/latest/quickstart-sending.html#send-via-api

注意:切换到文档中的python(必需)语言选项卡。

上述文档中的示例:

def send_simple_message():
    payload = {"from": "Excited User <mailgun@YOUR_DOMAIN_NAME>",
          "to": ["bar@example.com", "YOU@YOUR_DOMAIN_NAME"],
          "subject": "Hello",
          "text": "Testing some Mailgun awesomness!"}
    return requests.post( "https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages",
    auth=("api", "YOUR_API_KEY"),
    data=payload)