Итерации вместо копии, например, возвращаемой функцией items()
:
for k, v in list(mydict.items()):
Вы можете поместить данные в файл mdb, используя ado, и обойти ограничение в 256 столбцов. Однако использование UDF для извлечения данных непосредственно из любого внешнего источника данных будет очень медленным, если у вас их больше, чем несколько. Я бы создал класс для хранения данных с помощью метода load, вызываемого при открытии электронной таблицы, и чтобы ваши функции запрашивали объект. Таким образом, ваш метод загрузки принимает ваш CSV в качестве потока данных и заполняет дисконнектированный набор записей ado, определенный как статическую переменную, а затем вы определяете метод getdata, который возвращает желаемое значение на основе переданных ему параметров.