将mailchimp curl请求转换为python请求

时间:2016-05-12 16:21:09

标签: python authentication curl mailchimp mailchimp-api-v3.0

我能够成功运行curl但无法使用mailchimp API的python请求。它出错like urllib2.HTTPError: HTTP Error 401: Unauthorized

CURL

curl --request POST \
--url 'https://us9.api.mailchimp.com/3.0/lists' \
--user 'anystring:6a983664930fc8ba1eecdsdf334344f40-us9' \
--header 'content-type: application/json' \
--data '{"name":"My test","contact":{"company":"Cool","address1":"Awesome place","city":"Lanka","state":"MH","zip":"43472","country":"IN","phone":""},"permission_reminder":"You'\''re receiving this email because you signed up.","campaign_defaults":{"from_name":"VD","from_email":"hey@sdfsdf.com","subject":"","language":"en"},"email_type_option":true}' \
--include

Python请求:

import urllib2
import json
import requests
url = 'https://us9.api.mailchimp.com/3.0/lists/'

all_params={"user":"my_username:6a983664930fc8ba1eecd1d5d68f4f40-us9",
           "name":"My test",
           "contact":{"company":"Cool","address1":"Awesome place","city":"Lanka","state":"MH","zip":"43472","country":"IN","phone":""},"permission_reminder":"You'\''re receiving this email because you signed up.","campaign_defaults":{"from_name":"VD","from_email":"hey@sdfsdf.com","subject":"","language":"en"},
           "email_type_option":'true'}

post_data = urllib2.quote(json.dumps(all_params))
headers = {'Content-Type': 'application/json'}
request = urllib2.Request(url, post_data, headers) 
response = urllib2.urlopen(request)

我提到Converting cURL to Python Requests但没有奏效。

1 个答案:

答案 0 :(得分:0)

我解决了它。是数据中心的URL的问题。我使用的是us.api ...而不是us6.api.mailchimp.com/3.0/lists,因为我的帐户是在us6下创建的。所以,我需要使用数据中心,我的帐户在我的URL中注册请求。