test=[
        {'is_blocked': 0, 'ip': '10.10.10.1', 'id': 113},
        {'is_blocked': 0, 'ip': '10.10.10.16', 'id': 113},
        {'is_blocked': 0, 'ip': '10.10.10.1', 'id': 114},
        {'is_blocked': 0, 'ip': '10.10.10.16', 'id': 115},
        {'is_blocked': 0, 'ip': '10.10.10.1', 'id': 114},
        {'is_blocked': 0, 'ip': '10.10.10.16', 'id': 116}
]
def f(arr):
        vals, ips, res=[], [], []
        for i in arr:
            ip= i['ip']
            i2=i.copy()
            del i2['ip']
            try:
                ips[vals.index(i2)]+= ","+ip
            except:
                vals.append(i2)
                ips.append(ip)
        for i in range(len(vals)):
            vals[i]['ip']=ips[i]
            res.append(vals[i])
        return res
print str(f(test)).replace('}, {', '}, \n{')