JSON output in Bottle, Python and MongoDB -
i running bottle , python pull data mongodb. output comes in json object format.
used have following
{u'product': u'mortgage', u'total_product': 146533} {u'product': u'debt collection', u'total_product': 65639}
but wanted rid of 'u , following format:
'product':'mortgage', total_product: 146533 'product':'debt collection' 'total_product:65639
after running code, left blank screen no results , no error message. suggestion?
# find single aggregates choices = dict( aggr1 = db.complaints.aggregate([{"$group":{"_id":"$disputed", "total_disputed":{"$sum":1}}},{"$sort":{"total_disputed":-1}},{"$project":{"_id":0, "disputed":"$_id", "total_disputed":1}}]), aggr2 = db.complaints.aggregate([{"$group":{"_id":"$product", "total_product":{"$sum":1}}},{"$sort":{"total_product":-1}},{"$project":{"_id":0, "product":"$_id", "total_product":1}}]), aggr3 = db.complaints.aggregate([{"$group":{"_id":"$response", "total_response":{"$sum":1}}},{"$sort":{"total_response":-1}},{"$project":{"_id":0, "response":"$_id", "total_response":1}}]), aggr4 = db.complaints.aggregate([{"$group":{"_id":"$submitted", "total_submitted":{"$sum":1}}},{"$sort":{"total_submitted":-1}},{"$project":{"_id":0, "submitted":"$_id", "total_submitted":1}}]), aggr5 = db.complaints.aggregate([{"$group":{"_id":"$timely", "total_timely":{"$sum":1}}},{"$sort":{"total_timely":-1}},{"$project":{"_id":0, "timely":"$_id", "total_timely":1}}]) ) def convert_keys_to_string(choices): """recursively converts dictionary keys strings.""" if not isinstance(choices, dict): return choices return dict((str(k), convert_keys_to_string(v)) k, v in dictionary.items()) aggr1 = 'aggr1' aggr2 = 'aggr2' aggr3 = 'aggr3' aggr4 = 'aggr4' aggr5 = 'aggr5' return bottle.template('analytics.tpl', things1 = choices[aggr1], things2 = choices[aggr2], things3 = choices[aggr3], things4 = choices[aggr4], things5 = choices[aggr5]) bottle.debug(true) bottle.run(host='localhost', port=8082)
the tpl follows:
<!doctype html> <html> <head> <title> @2015 </title> </head> <body> <p> </p> <p> <ul> %for thing1 in things1: <li>{{thing1}}</li> %end </ul></p> <p> <ul> %for thing2 in things2: <li>{{thing2}}</li> %end </ul></p> </body> </html>
kindest regards
you using convertion string of dict in template {{thing1}}
.
just write template, format dict-entries want:
%for thing1 in things1: <li>'product':'{thing1.product}', total_product: {{thing1.total_product}}</li> %end
or
%for thing1 in things1: <li>'product':'{thing1.product}' 'total_product:{{thing1.total_product}}</li> %end
your question not clear, 1 prefer.
Comments
Post a Comment