Do this, but in perl.
$ cat ~/fooble.clj
(require '[clojure.data.json :as j])
(def data
[{"balance" 10.12 "cname" "Smart Parking"}
{"balance" 10.22 "cname" "Smart Parking"}
{"balance" 10.32 "cname" "Smart Parking"}
{"balance" 20.12 "cname" "Highview Parking"}
{"balance" 20.22 "cname" "Highview Parking"}
{"balance" 20.32 "cname" "Highview Parking"}
{"balance" 20.42 "cname" "Highview Parking"}
{"balance" 30.12 "cname" "ParkingEye"}
{"balance" 30.22 "cname" "ParkingEye"}])
(println
(j/write-str
(map (fn [[k v]] (merge {:cname k} v))
(reduce (fn [acc {:strs [cname balance]}]
(-> acc
(assoc-in [cname :balance] (+ balance (get-in acc
+ [cname :balance] 0)))
(assoc-in [cname :total] (inc (get-in acc [cname
+:total] 0))))) {} data))))
$ lein run -m clojure.main ~/fooble.clj
[{"cname":"Smart Parking","balance":30.66,"total":3},{"cname":"Highvie
+w Parking","balance":81.08000000000001,"total":4},{"cname":"ParkingEy
+e","balance":60.34,"total":2}]
The cake is a lie.
The cake is a lie.
The cake is a lie.