, потому что вы получаете итератор, который выполняет итерацию по объектам сопоставления , объекты сопоставления не имеют __getstate__ и __setstate__, поэтому не могут быть обработаны, весь итератор не может быть обработан.
Подробнее о эту тему можно найти здесь: https://docs.python.org/3/library/pickle.html#pickle -picklable
вот дальнейшее объяснение желаемых объектов: https://docs.python.org/3/library/re.html#match -objects
Пример использования рассола с объектами сопоставления:
import re
import pickle
s = 'Hi my name is John'
matches = []
out = re.finditer('John',s)
for m in out:
matches.append((m.start(), m.end(), m.group(0))
pickle.dump(matches, open('re.pkl','wb'))
альтернативным решением является реализация __getstate__ и __setstate__, чтобы помочь процессу травления, это потребует от вас создания настраиваемого класса и реализации этой функции, которая кажется слишком сложно для этой ситуации
Надеюсь, что помогло