Round off dict values to 2 decimals

前端 未结 6 1738
庸人自扰
庸人自扰 2021-01-16 11:29

I\'m having a hard time rounding off values in dicts. What I have is a list of dicts like this:

y = [{\'a\': 80.0, \'b\': 0.0786235, \'c\': 10.0, \'d\': 10.6         


        
6条回答
  •  鱼传尺愫
    2021-01-16 11:56

    I don't understand what relates to json, but I can propose:

    from math import ceil
    
    y = [{'a': 80.0, 'b': 0.0786235, 'c': 10.0, 'd': 10.6742903},
         {'a': 80.73246, 'b': 0.0, 'c': 10.780323, 'd': 10.0},
         {'a': 80.7239, 'b': 0.7823640, 'c': 10.0, 'd': 10.0},
         {'a': 80.7802313217234, 'b': 0.0, 'c': 10.0, 'd': 10.9762304}]
    
    class TwoDec(float):
        def __repr__(self):
            return "%.2f" % self
    
    def roundingVals_to_TwoDeci(y,ceil=ceil,TwoDec=TwoDec):
        for d in y:
            for k, v in d.iteritems():
                d[k] = TwoDec(ceil(v*100)/100)
    
    roundingVals_to_TwoDeci(y)
    for el in y:
        print el
    

    result

    {'a': 80.00, 'c': 10.00, 'b': 0.08, 'd': 10.68}
    {'a': 80.74, 'c': 10.79, 'b': 0.00, 'd': 10.00}
    {'a': 80.73, 'c': 10.00, 'b': 0.79, 'd': 10.00}
    {'a': 80.79, 'c': 10.00, 'b': 0.00, 'd': 10.98}
    

提交回复
热议问题