code: def _make_flat(self, row_dict, path, subroots):
          
          # can get a cursor parameter, if introspection should be possible on the fly
          out = {}
          for k, v in row_dict.items():
              klc = k.lower()  # "key lower case"
              if (not (isinstance(v, dict) and 'attributes' in v)
                      or ('done' in v and 'records' in v and 'totalSize' in v)):
                  # :
                  if klc not in subroots:
                      out[klc] = v
                  else:
                      strpath = '.'.join(path + (klc,)) + '.'
                      strip_pos = len(strpath) - len(klc + '.')
                      for alias in self.aliases:
                          if alias.lower().startswith(strpath):
                              out[alias.lower()[strip_pos:]] = None  # empty outer join field names
              else:
                  new_subroots = subroots[klc] if k != 'attributes' else {}
                  for sub_k, sub_v in self._make_flat(v, path + (klc,), new_subroots).items():
                      out[k.lower() + '.' + sub_k] = sub_v
          return out
docs: Replace the nested dict objects by a flat dict with keys "object.object.name".