Maybe if would be cleaner to add a custom JSONDecoder sub-class that passes in parse_float? That makes it symmetric with the encoding case.