title: Request.put method gets 500 response when using data={...} argument, and 200 response when using json={...} argument instead. Why?
body: <pre><code>res = requests.put(url=self.URL, json=self.output) # gives &lt;Response [200]&gt;
  res = requests.put(url=self.URL, data=self.output) # gives &lt;Response [500]&gt;
  </code></pre>
  
  <p>This is an example of the dictionary I am trying to upload:</p>
  
  <pre><code>{u'RPT6': '22,4', u'RPT7': '13,2', u'RPT4': '4,1', u'RPT5': '13,1', u'RPT2': '18,4', u'RPT3': '7,1', u'RPT1': '1,1', 'Last Change Time': '2017/09/19 - 16:24:28', u'RPT8': '5,1', u'RPT9': '10,3', '
  Last Change Author': 'CNBCN477QB', u'RPT10': '22,4', u'RPT11': '22,3', u'RPT12': '15,3'}
  </code></pre>
  
  <p>This dictonary is a modification of an original json file obtained from the same url <code>www.myjson.com</code> using <code>requests.get</code> method. Therefore I understand there is no problem with the server. After cheaking <a href="http://docs.python-requests.org/en/master/api/#requests.put" rel="nofollow noreferrer">the related documentation</a> I am not able to discover why I get that error as it is clearly stated that the use of a dictionary goes with the <code>data</code> argument.</p>