request.patch () возвращает 200 ОК, но ничего не меняется - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь использовать модуль requests и MailChimp API, чтобы обновить мои контакты до «подписанных». Согласно документации , мне нужно сделать запрос requests.patch(), используя MD5 ha sh электронной почты участника (в нижнем регистре). Код, который я разработал для этого со списком адресов электронной почты, выглядит следующим образом:

import json
import requests
import hashlib

api_link = 'https://us6.api.mailchimp.com' 
post_endpoint = '/3.0/lists/%s/members/' % (listID) # List ID is in my code
email_dict = {
    'status': 'subscribed'
    }
email_json = json.dumps(email_dict)

for email in email_list:
  hashed = hashlib.md5(email.encode()).hexdigest()
  print(api_link+post_endpoint+hashed)
  response = requests.patch(api_link+post_endpoint+hashed,
                           json=email_json,
                           auth=('me',api_key)
                           )
  print(email)
  print(response.status_code, response.reason)

Этот код печатает ответ status_code и reason из 200 OK, что означает (насколько я могу сказать), что что-то происходит. Но письмо остается отписанным. Поскольку JSON кажется правильным, а структура ссылок соответствует документации, что еще происходит не так?

1 Ответ

0 голосов
/ 06 мая 2020

попробуйте использовать этот формат:

payload={'status': 'subscribed'}

headers={'content-type': 'application/json'}

requests.patch(url, data=json.dumps(payload), headers=headers)
...