Advertisement
Guest User

Untitled

a guest
Sep 3rd, 2015
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. #! /usr/bin/env python3
  2.  
  3. import json
  4. from pprint import pprint
  5.  
  6. my_input = r"""{
  7. "hasMore": false,
  8. "checkins": [
  9. {
  10. "timestamp": 1353193745000,
  11. "timezone_id": "{"name":"America/Denver","seconds":"-21600"}",
  12. "privacy_groups": [
  13. "private"
  14. ],
  15. "meta": {
  16. "client_version": "3.0",
  17. "uuid": "fake_UUID"
  18. },
  19. "client_id": "fake_client_id",
  20. "workout_name": "Workout (Nov 17, 2012)",
  21. "fitness_workout_json": {
  22. "exercise_logs": [
  23. {
  24. "timestamp": 1353195716000,
  25. "type": "exercise_log",
  26. "timezone_id": "{"name":"America/Denver","seconds":"-21600"}",
  27. "workout_log_uuid": "fake_UUID"
  28. },
  29. {
  30. "timestamp": 1353195340000,
  31. "type": "exercise_log",
  32. "timezone_id": "{"name":"America/Denver","seconds":"-21600"}",
  33. "workout_log_uuid": "fake_UUID"
  34. }
  35. ]
  36. },
  37. "workout_uuid": ""
  38. },
  39. {
  40. "timestamp": 1354485615000,
  41. "user_id": "fake_ID",
  42. "timezone_id": "{"name":"America/Denver","seconds":"-21600"}",
  43. "privacy_groups": [
  44. "private"
  45. ],
  46. "meta": {
  47. "uuid": "fake_UUID"
  48. },
  49. "created": 1372023457376,
  50. "workout_name": "Workout (Dec 02, 2012)",
  51. "fitness_workout_json": {
  52. "exercise_logs": [
  53. {
  54. "timestamp": 1354485615000,
  55. "timezone_id": "{"name":"America/Denver","seconds":"-21600"}",
  56. "workout_log_uuid": "fake_UUID"
  57. },
  58. {
  59. "timestamp": 1354485584000,
  60. "timezone_id": "{"name":"America/Denver","seconds":"-21600"}",
  61. "workout_log_uuid": "fake_UUID"
  62. }
  63. ]
  64. },
  65. "workout_uuid": ""
  66. }]}"""
  67.  
  68. def recurse(obj):
  69. if isinstance(obj, list):
  70. for item in obj:
  71. return recurse(item)
  72. if isinstance(obj, dict):
  73. for k, v in obj.items():
  74. if isinstance(v, str):
  75. try:
  76. v = json.loads(v)
  77. except ValueError:
  78. pass
  79. obj.update({k: v})
  80. elif isinstance(v, (dict, list)):
  81. return recurse(v)
  82.  
  83. pprint(json.loads(my_input, object_hook=recurse))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement