У меня есть несколько типов данных, которые мне нужно написать:
a.Список массивов numpy, например, [ndarray, ndarray, ndarray]
разных размеров.
b.Любой произвольный массив NumPy, например, np.zeros((5,6)), np.randn((76,2))
и т. Д.
c.Любые другие будущие типы данных, которые мне еще не приходили в голову.
Требования:
Мне нужна одна функция, чтобы можно было сохранить всеэти типы данных, без специальной обработки и с будущей совместимостью для типа c, указанного выше.
Мне также нужен дамп выходного файла в удобочитаемом формате.
До сих пор я смог выполнить требование 1 только с помощью YAML или pickle, оба из которых с двоичными файлами, т.е. не читаемыми человеком.
@staticmethod
def _read_with_yaml(path):
with open(path, 'r') as stream:
return yaml.load(stream)
@staticmethod
def _write_with_yaml(path, obj):
with io.open(path, 'w+', encoding='utf8') as outfile:
yaml.dump(obj, outfile, default_flow_style=False, allow_unicode=True)
В этом примере кода выводится не-человек-читаемые файлы, но работает для типов данных, которые у меня есть.
Есть ли способ выполнить оба требования?