如何在Python中为Zeptomail API的Payload插入用户变量(含换行)
为Zeptomail API Payload填充用户专属数据
作为Python新手,你需要将用户信息填充到Zeptomail API请求Payload的merge_info字段和to头部,替换示例中test_开头的占位值。以下是具体实现方案:
方案一:字符串替换(适配你的示例格式)
直接对payload模板字符串进行变量替换,快速替换占位文本为真实用户数据:
# 真实用户数据 user_name = 'users name' user_email = 'users@email.test' user_title = 'users title' # 定义带占位符的payload模板 payload_template = ''' { \n\"mail_template_key\":\"xxxxxxxxxxxxxxxxxxxxxxxxx\", \n\"from\": { \"address\": \"example@mail.com\", \"name\": \"example\" }, \n\"to\": [{ \"email-address\": { \"address\": \"TEST_EMAIL\", \"name\": \"TEST_NAME\" } }], \n\"merge_info\": { "name":"TEST_NAME", "title":"TEST_TITLE" }} ''' # 替换占位符生成最终payload payload = payload_template.replace("TEST_EMAIL", user_email)\ .replace("TEST_NAME", user_name)\ .replace("TEST_TITLE", user_title)
执行后得到的payload即为你期望的输出内容。
方案二:使用JSON模块(更规范的实现)
手动拼接字符串易出现转义错误,推荐用Python内置json模块构造Payload,可读性与安全性更高:
import json # 真实用户数据 user_name = 'users name' user_email = 'users@email.test' user_title = 'users title' # 用Python字典构造Payload结构,直接嵌入变量 payload_dict = { "mail_template_key": "xxxxxxxxxxxxxxxxxxxxxxxxx", "from": { "address": "example@mail.com", "name": "example" }, "to": [{ "email-address": { "address": user_email, "name": user_name } }], "merge_info": { "name": user_name, "title": user_title } } # 转换为标准JSON字符串 payload = json.dumps(payload_dict, indent=4)
这种方式无需手动处理转义字符,后续修改字段或扩展数据也更方便。
内容的提问来源于stack exchange,提问作者Raymond
相关产品推荐
相关产品推荐

