【发布时间】:2020-02-29 12:48:37
【问题描述】:
我已经在 Python 上工作了大约 1.5 年,并正在寻找一些方向。这是我在进行大量搜索后第一次找不到我需要的东西,而且一定是遗漏了一些东西——很可能是搜索错误的术语。
问题:我正在开发一个有许多进程(可能是数百甚至数千)的应用程序。每个进程可能有唯一的输入和输出数据格式 - 可以是多行字符串、逗号分隔字符串、excel或csv em> 有或没有不同的标题和许多其他。我需要一些能够正确格式化输入并根据流程处理输出的东西。新流程也需要轻松添加/定义。我对最好的方法持开放态度,但我的想法是使用存储模板/数据定义的数据库并使用它来了解给定流程的格式。但是,如果这确实是最好的方法,我正在努力想出确切的方法,但它需要是一个可扩展的解决方案。任何方向将不胜感激。谢谢。
几个简单的数据示例
处理 1 个示例数据(带 Header 的多行字符串) 输入
[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 示例输入模板(逗号与 Header 分隔):
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 示例生成的输入数据(用 Header 分隔的逗号):
的输入{'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
我知道如何使用硬编码循环/数据帧合并等处理每个进程。我在其他情况下使用 dicts 做了一些抽象。但是,如何定义/存储变化如此之大的每种格式并创建可重用的抽象代码是我遇到的问题。
【问题讨论】:
标签: python generics input output