According to their documentation, MailChimp expects data to be JSON (with the correct content-type header), not URL-encoded form data.
Using urllib2, here's an example on how to POST JSON data with the correct header, taken from this answer :
import urllib2
data = "{'email':{'email':'example@email.com'}}"
req = urllib2.Request("http://some/API/endpoint", data, {'Content-Type': 'application/json'})
f = urllib2.urlopen(req)
response = f.read()
f.close()
However, I suggest you use Python-Requests which is easier to use than urllib2, here's the same code using Requests :
from requests import post
data = "{'email':{'email':'example@email.com'}}"
response = post("http://some/API/endpoint", data=data, headers={'Content-type': 'application/json', 'Accept': 'text/plain'}).text