Я работал над Python около 1,5 лет и искал направление. Это первый раз, когда я не могу найти то, что мне нужно после долгих поисков, и, должно быть, что-то упустил - скорее всего, поиск неправильных терминов.
Проблема : я работаю над приложение, которое имеет много процессов (может быть сотни или даже тысячи). Каждый процесс может иметь уникальный формат входных и выходных данных - это могут быть многострочные строки , строки, разделенные запятыми , excel или csv с или без изменения заголовков и многих других. Мне нужно что-то, что будет правильно форматировать ввод и обрабатывать вывод на основе процесса. Новые процессы также должны быть легко добавлены / определены. Я открыт для любого наилучшего подхода, но мои мысли состоят в том, чтобы использовать базу данных, в которой хранится определение шаблона / данных, и использовать ее для определения формата, заданного процессом. Тем не менее, я изо всех сил пытаюсь придумать, как именно, если это действительно лучший подход, но это должно быть масштабируемое решение. Любое направление будет оценено. Спасибо.
Пара простых примеров данных
Обработка 1 примера данных (многострочная строка с заголовком) Ввод
[ABC123, XYZ453, CDE987]
и результирующий ввод данных ниже будет создан:
Barcode
ABC123
XYZ453
CDE987
Этот код ниже работает, но не может использоваться повторно для примера 2.
list = [ABC123, XYZ453, CDE987]
input = "Barcode /r/n"
for l in list:
input = input + l + '/r/n'
Пример шаблона ввода процесса 2 ( запятая, разделенная заголовком):
Barcode,Location,Param1,Param2
Item1,L1,11,A
Item1,L1,22,B
Item2,L1,33,C
Item2,L2,44,F
Item3,L2,55,B
Item3,L2,66,P
Пример процесса, полученный в результате ввода данных 2 (запятая, разделенная заголовком): Ввод
{'Barcode':['ABC123', 'XYZ453', 'CDE987', 'FGH487', 'YTR123'], 'Location':['Shelf1', 'Shelf2']}
и использование ниже приведен шаблон для создания входных данных:
Barcode,Location,Param1,Param2
ABC123,Shelf1,11,A
ABC123,Shelf1,22,B
XYZ453,Shelf1,33,C
XYZ453,Shelf2,44,F
CDE987,Shelf2,55,B
CDE987,Shelf2,66,P
FGH487,Shelf1,11,A
FGH487,Shelf1,22,B
YTR123,Shelf1,33,C
YTR123,Shelf2,44,F
Я знаю, как обрабатывать каждый процесс с помощью жестко закодированных циклов / слияния фреймов данных и т. д. c. Я сделал некоторую абстракцию в других случаях с диктовками. Однако, как определить / сохранить каждый формат, который так сильно различается, и создать абстрагируемый код многократного использования - вот где я застрял.