¿Cómo establecer el número de dígitos flotantes que produce JSONEncoder?

Estoy tratando de configurar la pythonjson biblioteca para guardar en un diccionario que contiene como elementos otros diccionarios. Hay muchos números flotantes y me gustaría limitar el número de dígitos a, por ejemplo, 7.

Según otras publicaciones en SOencoder.FLOAT_REPR se utilizará aunque no esté funcionando.

Por ejemplo, el siguiente código ejecutado en Python3.7.1 imprime todos los dígitos:

import json
json.encoder.FLOAT_REPR = lambda o: format(o, '.7f' )
d = dict()
d['val'] = 5.78686876876089075543
d['name'] = 'kjbkjbkj'
f = open('test.json', 'w')
json.dump(d, f, indent=4)
f.close()

¿Cómo puedo resolver eso?

uede que sea irrelevante, pero yo en OSX.

EDITA

Esta pregunta se marcó como duplicada. Sin embargo enla respuesta aceptada (y hasta ahora la única) a la @ origin se establece claramente:

Nota: Esta solución no funciona en Python 3.6 +

Así que esa solución no es la adecuada. Además está usando la bibliotecasimplejson n la bibliotecajson.