I was a bit skeptical about a new data format call tnetstring. It claims to be both human and machine readable. They claim that a parser is easier to built for a tnetstring and therefore is better. In fact, while the implementation of the parser may be easier, human readability suffers with negligible speed gains.
I assert that if human readability is harmed in favor of speed, then you would be much better off using a binary solution such as Protobufs.
Time is in milliseconds:
(experiments)emoritzmbpro:tnetstringshootout emoritz$ python tnet.py 13.1070613861 (experiments)emoritzmbpro:tnetstringshootout emoritz$ python jsontest.py 1780.90310097 (experiments)emoritzmbpro:tnetstringshootout emoritz$ python json-min-test.py 1514.28318024 (experiments)emoritzmbpro:tnetstringshootout emoritz$ python simplejsontest.py 35.9201431274 (experiments)emoritzmbpro:tnetstringshootout emoritz$ python simplejson-min-test.py 16.233921051 (experiments)emoritzmbpro:tnetstringshootout emoritz$ python pkltest.py 36.780834198 (experiments)emoritzmbpro:tnetstringshootout emoritz$ python bsontest.py 22032.9511166