code: def recursive_iter(self, obj):
      if isinstance(obj, dict):
          for key, value in obj.items():
              match = isinstance(value, string_types) and re.search(
                  r"(\d{4}-\d{2}-\d{2}).*", value
              )
              if match:
                  try:
                      obj[key] = pd.to_datetime(value, utc=True)
                  except ValueError:
                      pass
  
      elif any(isinstance(obj, t) for t in (list, tuple)):
          for item in obj:
              self.recursive_iter(item)
  
file_path: catalyst/catalyst/exchange/utils/serialization_utils.py
imports: import json
  import re
  from json import JSONEncoder
  import pandas
  from catalyst.constants import DATE_TIME_FORMAT
  from six import string_types
label_desc: Use image node_id 2 for calling the ExchangeJSONDecoder obj's underlying member method code with example usage: obj.recursive_iter(obj) without return types