Arquive isso em “bom saber”. Especialmente se você estiver fazendo cálculos numéricos e colocando-os em arquivos json.
Considere o seguinte arquivo testjson.py:
import json
d = {
'a': float('inf'),
'b': float('-inf'),
'c': float('nan')
}
print d['a'], d['b'], d['c']
print json.dumps(d)
python testjson.py
inf -inf nan
{"a": Infinity, "c": NaN, "b": -Infinity}
O problema aqui é que Infinity, -Infinity e NaN não são valores JSON válidos. O próprio módulo json do Python irá analisá-los bem, mas se você não tiver certeza de que seus arquivos JSON serão manipulados com Python, cuidado, os aplicativos cliente provavelmente não ficarão satisfeitos com esses valores.