dumpsで桁数を制御することはできないが、loadsで制御することが可能。速度は遅くなるが、dumps→loads→dumps
にすると良い。
import json print(json.dumps([23.67, 23.97, 23.87])) print(json.dumps([23.67000000000002, 23.96999999999999, 23.87000000000001])) print(json.dumps(json.loads(json.dumps([23.67000000000002, 23.96999999999999, 23.87000000000001]), parse_float=lambda x: round(float(x), 3)))) #3桁まで print(json.dumps(json.loads(json.dumps([23.67000000000002, 23.96999999999999, 23.87000000000001]), parse_float=lambda x: round(float(x), 14)))) #14桁まで
出力
[23.67, 23.97, 23.87] [23.67000000000002, 23.96999999999999, 23.87000000000001] [23.67, 23.97, 23.87] [23.67000000000002, 23.96999999999999, 23.87000000000001]
参照