Я пытаюсь создать UUID на основе хеша md5 значения ячейки в OpenRefine (используя Jython), но у меня возникают проблемы с передачей значения в функцию.
Я могу создать UUID с помощью выражения:
import uuid;
return str(uuid.uuid4());
но я хочу использовать md5-хэш значения ячейки, поэтому я попытался следовать формуле
uuid.uuid3 (пространство имен, имя)
Однако я не могу передать значение функции.Попытка:
import uuid;
return str(uuid.uuid3(uuid.NAMESPACE_DNS, value));
получает следующую ошибку:
Ошибка: обратная связь (последний вызов был последним): файл "", строка 3, в temp_448166737 Файл "/ Applications / OpenRefine 3.2b.app/Contents/Resources/webapp/extensions/jython/module/MOD-INF/lib/jython-standalone-2.7.1.jar/Lib/uuid.py", строка 528,в uuid3 UnicodeDecodeError: кодек «ascii» не может декодировать байт 0xa7 в позиции 1: порядковый номер не в диапазоне (128)
Без использования значения ячейки выражение работает достаточно хорошо.В примере
import uuid;
return str(uuid.uuid3(uuid.NAMESPACE_DNS, 'example'));
используется строка «пример» и вычисляется UUID c5e5f349-28ef-3f5a-98d6-0b32ee4d1743 для каждой ячейки.Однако это не желаемый результат.
Есть идеи, как передать в Jython значение ячейки, присутствующей в OpenRefine в выражении?