Код ниже был протестирован в Python 3.6 и 2.7
(я думаю, это то, что вы ищете)
reader = [['1','2','3'],['11','22','33'],['111','222','333']]
csv_rows = []
title = ['T1','T2','T3']
for row in reader:
csv_rows.extend([ {title[i]:row[i] for i in range(len(title))} ])
print(csv_rows)
Выход
[{'T2': '2', 'T3': '3', 'T1': '1'}, {'T2': '22', 'T3': '33', 'T1': '11'}, {'T2': '222', 'T3': '333', 'T1': '111'}]
Смотрите на эту статью Codeproject. Один путь был бы переносом Ваши функции Python в C dll и выставил бы это вызываемому.
COM является протоколом двоичной синхронной передачи данных для решения этой проблемы. Но необходимо будет перенести этот Python dll в обертку COM. И добавьте некоторый код стороны вызова также.
Стандартное решение состоит в том, чтобы встроить интерпретатор Python (который уже является DLL C) в Вашем приложении.
https://docs.python.org/extending/windows.html#using-dlls-in-practice
Py2exe может генерировать COM dlls из кода Python путем компиляции и встраивания кода Python + интерпретатор. Это не делает, AFAIK, поддерживает регулярный DLLs все же. Для этого см. ответ dirkgently о встраивании Python сами.