Como definir o número de dígitos flutuantes que JSONEncoder produ

Estou tentando definir o pythonjson library para salvar em um dicionário que contém como elementos outros dicionários. Existem muitos números flutuantes e eu gostaria de limitar o número de dígitos para, por exemplo, 7.

De acordo com outras postagens no SOencoder.FLOAT_REPR deve ser usado de qualquer maneir

Por exemplo, o código abaixo executado em Python3.7.1 imprime todos os 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()

Como posso resolver isso?

Pode ser irrelevante, mas eu no OS

EDITA

Esta pergunta foi marcada como duplicada. No entanto, ema resposta aceita (e até agora a única) à resposta original está claramente indicado:

Nota: Esta solução não funciona em python 3.6 +

Portanto, essa solução não é a correta. Além disso, está usando a bibliotecasimplejson a bibliotecajson.

questionAnswers(4)

yourAnswerToTheQuestion