curl -X PUT -d @data/test.json httpbin.org/put
It also has the advantage that it supports all the options you might ever need, for example http authentication and proxies are often useful.
Requests and urllib3 have a long way to go to be complete competitors with cURL.
P.S. Good job nonetheless. Seems like a good idea to make a specialized HTTP CLI client for JSON/RESTful services.
curl -X PUT -d @data/test.json httpbin.org/put
It also has the advantage that it supports all the options you might ever need, for example http authentication and proxies are often useful.