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
nã a bibliotecajson
.