req.add_data(json.dumps({'some': 'data'}))
req.add_header('Content-Type', 'application/json; charset=utf-8')
res = urllib.request.urlopen(req)
Непоследовательное поведение с запросами HTTP POST в Python