【发布时间】:2021-05-13 23:52:20
【问题描述】:
我正在尝试将从 Mailchimp 收到的一些 json 解析为我的 Django 应用程序中的 Webhook。格式如下所示:
{
"type": "subscribe",
"fired_at": "2009-03-26 21:35:57",
"data": {
"id": "8a25ff1d98",
"list_id": "a6b5da1054",
"email": "api@mailchimp.com",
"email_type": "html",
"ip_opt": "10.20.10.30",
"ip_signup": "10.20.10.30",
"merges": {
"EMAIL": "api@mailchimp.com",
"FNAME": "Mailchimp",
"LNAME": "API",
"INTERESTS": "Group1,Group2"
}
}
}
我尝试了以下方法:
def marketing_email_handler(request):
if request.method == 'POST':
reqtype = request.body['type']
reqdata = request.body['data']
reqemail = request.body['data']['email']
我收到错误“字节索引必须是整数”。
我已尝试将其更改为以下内容,但这会导致错误“TypeError: 'int' object is not subscriptable”。而且做 request.json() 也会报错
reqtype = request.body[0]['type']
reqdata = request.body[0]['data']
reqemail = request.body[0]['data']['email']
我也尝试过(如 TypeError: byte indices must be integers or slices, not str 建议的那样)
json.loads(request.body)
但我收到以下信息:'JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)'
【问题讨论】:
-
究竟什么是“错误”?
-
第一个如何从 Django request 获取 Mailchimp 数据
-
json_data = json.loads(request.body)
-
@iklinac - 尝试执行 json.loads(request.body),但我收到以下信息:'JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError:期望值:第 1 行第 1 列 (char 0)'
标签: python json django webhooks mailchimp