Кстати, а вот у метода ImmutableDict.to_dict() есть параметр flat, в доке написано:
flat – If set to False the dict returned will have lists with all the values in it. Otherwise it will only contain the first value for each key.
вроде бы по описанию то что надо, только я не понял как данные надо тогда передавать в виде списков, я пробовал этот аргумент в False выставлять, но просто получал что каждое значение в виде строки просто в список оборачивается