title: Difference between "data" and "params" in Python requests?
body: <p>I was curious what the difference was between the <code>data</code> parameter and the <code>params</code> parameter in a <code>python-requests</code> request, and when each should be used.  </p>
  
  <p>One example is I have an array of dicts <code>users=[{"email_hash": "fh7834uifre8houi3f"}, ... ]</code> and I try to do a POST (<code>requests.post()</code>) with  </p>
  
  <pre><code>params = {
      "ads_token": blah blah,
      "user_id": blah blah,
      "users": json.dumps(users)  # users=[{"email_hash": "fh7834uifre8houi3f"}, ... ]
      "hash_type": "md5"
  }
  </code></pre>
  
  <p>and because <code>users</code> is a few hundred long, the resulting string from <code>json.dumps(users)</code> (and thus the URL itself as well) is very long and I get the error <code>{'status_code': 414, 'reason': 'Request-URI Too Large'}</code>. Would this be a case for <code>data</code> or is there some other path I should follow? Thanks!</p>