fork download
  1. import json
  2.  
  3. data = '[{"month":"Jan","duration":20.5,"activity":"reading","date":"14"},{"month":"Jan","duration":15.5,"activity":"painting","date":"14"},{"month":"Jan","duration":6.5,"activity":"socializing","date":"14"},{"month":"Jan","duration":12.0,"activity":"shopping","date":"18"},{"month":"Jan","duration":10.0,"activity":"cooking","date":"18"},{"month":"Jan","duration":11.5,"activity":"cycling","date":"18"},{"month":"Jan","duration":17.0,"activity":"anime","date":"18"},{"month":"Jan","duration":11.0,"activity":"socializing","date":"18"},{"month":"Jan","duration":11.0,"activity":"jogging","date":"18"},{"month":"Jan","duration":1.5,"activity":"movie","date":"18"},{"month":"Jan","duration":14.0,"activity":"bored","date":"21"}]'
  4. dict_=json.loads(data)
  5.  
  6. list_ = []
  7. new_data = []
  8. not_found = True
  9. for item in dict_:
  10. for month in new_data:
  11. not_found = True
  12. if item['month'] == month['month']:
  13. not_found = False
  14. for date in month['details']:
  15. if item['date'] == date['date']:
  16. date['effort'].append({'activity':item['activity'], 'duration':item['duration']})
  17. else:
  18. month['details'].append({'date':item['date'], 'effort':[{'activity':item['activity'], 'duration':item['duration']}]})
  19. break
  20. if not_found:
  21. new_data.append({'month':item['month'], 'details':[{'date':item['date'], \
  22. 'effort':[{'activity':item['activity'], 'duration':item['duration']}]}]})
  23.  
  24. print json.dumps(new_data)
Success #stdin #stdout 0.01s 47720KB
stdin
Standard input is empty
stdout
[{"month": "Jan", "details": [{"date": "14", "effort": [{"activity": "reading", "duration": 20.5}, {"activity": "painting", "duration": 15.5}, {"activity": "socializing", "duration": 6.5}]}, {"date": "18", "effort": [{"activity": "shopping", "duration": 12.0}, {"activity": "shopping", "duration": 12.0}, {"activity": "cooking", "duration": 10.0}, {"activity": "cycling", "duration": 11.5}, {"activity": "anime", "duration": 17.0}, {"activity": "socializing", "duration": 11.0}, {"activity": "jogging", "duration": 11.0}, {"activity": "movie", "duration": 1.5}]}, {"date": "18", "effort": [{"activity": "cooking", "duration": 10.0}, {"activity": "cooking", "duration": 10.0}, {"activity": "cycling", "duration": 11.5}, {"activity": "anime", "duration": 17.0}, {"activity": "socializing", "duration": 11.0}, {"activity": "jogging", "duration": 11.0}, {"activity": "movie", "duration": 1.5}]}, {"date": "18", "effort": [{"activity": "cycling", "duration": 11.5}, {"activity": "cycling", "duration": 11.5}, {"activity": "anime", "duration": 17.0}, {"activity": "socializing", "duration": 11.0}, {"activity": "jogging", "duration": 11.0}, {"activity": "movie", "duration": 1.5}]}, {"date": "18", "effort": [{"activity": "anime", "duration": 17.0}, {"activity": "anime", "duration": 17.0}, {"activity": "socializing", "duration": 11.0}, {"activity": "jogging", "duration": 11.0}, {"activity": "movie", "duration": 1.5}]}, {"date": "18", "effort": [{"activity": "socializing", "duration": 11.0}, {"activity": "socializing", "duration": 11.0}, {"activity": "jogging", "duration": 11.0}, {"activity": "movie", "duration": 1.5}]}, {"date": "18", "effort": [{"activity": "jogging", "duration": 11.0}, {"activity": "jogging", "duration": 11.0}, {"activity": "movie", "duration": 1.5}]}, {"date": "18", "effort": [{"activity": "movie", "duration": 1.5}, {"activity": "movie", "duration": 1.5}]}, {"date": "21", "effort": [{"activity": "bored", "duration": 14.0}, {"activity": "bored", "duration": 14.0}]}, {"date": "21", "effort": [{"activity": "bored", "duration": 14.0}, {"activity": "bored", "duration": 14.0}]}, {"date": "21", "effort": [{"activity": "bored", "duration": 14.0}, {"activity": "bored", "duration": 14.0}]}, {"date": "21", "effort": [{"activity": "bored", "duration": 14.0}, {"activity": "bored", "duration": 14.0}]}, {"date": "21", "effort": [{"activity": "bored", "duration": 14.0}, {"activity": "bored", "duration": 14.0}]}, {"date": "21", "effort": [{"activity": "bored", "duration": 14.0}, {"activity": "bored", "duration": 14.0}]}, {"date": "21", "effort": [{"activity": "bored", "duration": 14.0}, {"activity": "bored", "duration": 14.0}]}, {"date": "21", "effort": [{"activity": "bored", "duration": 14.0}, {"activity": "bored", "duration": 14.0}]}]}]