code: def _generate_one_fake(self, schema):
          
          data = {}
          for k, v in schema.items():
              if isinstance(v, dict):
                  data[k] = self._generate_one_fake(v)
              elif isinstance(v, list):
                  data[k] = [self._generate_one_fake(item) for item in v]
              else:
                  data[k] = getattr(self._faker, v)()
          return data
docs: Recursively traverse schema dictionary and for each "leaf node", evaluate the fake
          value
  
          Implementation:
          For each key-value pair:
          1) If value is not an iterable (i.e. dict or list), evaluate the fake data (base case)
          2) If value is a dictionary, recurse
          3) If value is a list, iteratively recurse over each item