Не идеальное решение, но вы можете попробовать использовать MPXJ. MPXJ сам по себе является библиотекой Java, но при условии, что вы можете запустить отдельный процесс из вашего кода Python, вы можете заставить его конвертировать файл XER в JSON, который должен быть проще в использовании (этот подход используется в геме MPXJ Ruby, это просто оборачивая код Java, выполняющий преобразование, затем читая полученный JSON). Вы также должны найти структуру данных расписания в JSON, сгенерированную MPXJ, с которой проще работать, чем с содержимым файла XER, хотя у вас не будет доступа ко всем атрибутам в исходном файле XER.
Рубиновую версию этого процесса можно найти здесь . Подводя итог, командная строка будет выглядеть примерно так:
java -cp <classpath> net.sf.mpxj.sample.MpxjConvert your-file.xer your-file.json
Вам просто нужно установить поставку <classpath>
, чтобы сообщить JVM, где находится MPXJ JAR и его зависимости.