Python改写CURL DELETE请求遍历CSV执行输出函数对象问题排查
问题原因及修复方案
你代码中存在以下几处核心问题:
- 没有接收函数返回的请求响应对象,直接访问函数对象的
text属性
你调用了remove_suppression()但没有把返回的Response对象存下来,直接写remove_suppression.text是尝试访问函数本身的text属性,直接打印函数对象就会输出你看到的<function remove_suppression at 0x...>格式的内容。 - 自定义函数没有接收CSV读取的行数据,请求参数写死为字符串
'row[1]'
当前函数里的data={'address':'row[1]'}是把address固定设为了"row[1]"这个字符串,而不是CSV每一行里对应位置的真实邮箱值。 - 存在语法/导入遗漏问题
- Python导入关键字是小写
import,你写的Import首字母大写会触发语法错误 - 使用了
sleep()但没有导入time模块的sleep方法 - 空的
except块会吞掉所有错误,不利于排查问题
- Python导入关键字是小写
修复后的完整代码
import csv import requests from time import sleep def remove_suppression(email): return requests.delete( "https://api.mailgun.net/v3/messages.thewebsite.com/unsubscribes", auth=("api", "key-abcdefg12345789gbb"), data={'address': email} ) with open('/Users/brett/Downloads/example.csv', newline='') as csvfile: readCSV = csv.reader(csvfile, delimiter=',') for row in readCSV: try: # 取每行第二列的邮箱值,可根据实际CSV列位置调整索引 email = row[1] resp = remove_suppression(email) print("=========================") print(f"处理邮箱:{email},响应状态码:{resp.status_code},响应内容:{resp.text}") sleep(5) except Exception as e: # 这里可替换为写日志到文本文件的逻辑 print(f"处理邮箱{email}失败,错误信息:{str(e)}")
内容的提问来源于stack exchange,提问作者Brett
相关产品推荐
相关产品推荐

