Более года назад я сообщил об ошибке, с которой столкнулся при сборе довольно сложных данных. В то время я не знал, в чем проблема, и полагал, что она могла быть связана с рекурсивными ссылками.
Я сталкивался с этой проблемой несколько раз во время работы над своим проектом, но только делал произвольные действия, пытаясь исправить это, пока ошибка не исчезла. Теперь я наконец-то нашел время разобраться в источнике проблемы и уточнить свой MWE. Вот что у меня получилось:
Более года назад я сообщил об ошибке, с которой столкнулся при сборе довольно сложных данных. В то время я не знал, в чем проблема, и полагал, что она могла быть связана с рекурсивными ссылками. Я сталкивался с этой проблемой несколько раз во время работы над своим проектом, но только делал произвольные действия, пытаясь исправить это, пока ошибка не исчезла. Теперь я наконец-то нашел время разобраться в источнике проблемы и уточнить свой MWE. Вот что у меня получилось: [code]import pickle import numpy as np
# create data dtypes = [('f0', 'O')] # for some reason, I need at least an extra of 19 fields for it to crash # immediately dtypes += [(f'f{i+1}', 'i4') for i in range(19)] data = np.empty(1, dtype=dtypes) # print(data[0])
# dump data dump = pickle.dumps(data[0], pickle.HIGHEST_PROTOCOL) # print('dumping works')
# load data load = pickle.loads(dump) # print('loading works')
# process crashes here if len(dtypes) > 19 print(load)