Use HTTP content negotiation
It would be nice to use HTTP content negotiation, in addition to the explicit "format" parameter.
No idea how to do it in Python: HTTP headers are surprisingly difficult to parse and the header can be as complicated as (example from the RFC):
Accept: text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c
Possible references: http://www.xml.com/pub/a/2005/06/08/restful.html (with Python code), https://github.com/martinblech/mimerender (Python module to implement that), http://pythonpaste.org/httpencode/module-httpencode.mimeparse.html (Python module at a lower level, just does the parsing)