code: def to_bson_voronoi_list2(self):
          
          bson_nb_voro_list2 = [None] * len(self.voronoi_list2)
          for ivoro, voro in enumerate(self.voronoi_list2):
              if voro is None or voro == 'None':
                  continue
              site_voro = []
              # {'site': neighbors[nn[1]],
              #  'angle': sa,
              #  'distance': distances[nn[1]],
              #  'index': myindex}
              for nb_dict in voro:
                  site = nb_dict['site']
                  site_dict = {key: val for key, val in nb_dict.items() if key not in ['site']}
                  #site_voro.append([ps.as_dict(), dd]) [float(c) for c in self.frac_coords]
                  diff = site.frac_coords - self.structure[nb_dict['index']].frac_coords
                  site_voro.append([[nb_dict['index'], [float(c) for c in diff]],
                                    site_dict])
              bson_nb_voro_list2[ivoro] = site_voro
          return bson_nb_voro_list2
docs: Transforms the voronoi_list into a vlist + bson_nb_voro_list, that are BSON-encodable.
          :return: [vlist, bson_nb_voro_list], to be used in the as_dict method