Minhas desculpas. Deixando isso aqui caso outros encontrem o mesmo problema.
Depurando a requisição HTTP real enviada, notei que o python estava enviando os dados PUT como \"post=raw\u0026post=edit_reason\"… substituí data=data por json=data na chamada requests.put() e o trabalho foi feito.