【问题标题】:Python Generic Data EnginePython 通用数据引擎
【发布时间】:2020-02-29 12:48:37
【问题描述】:

我已经在 Python 上工作了大约 1.5 年,并正在寻找一些方向。这是我在进行大量搜索后第一次找不到我需要的东西,而且一定是遗漏了一些东西——很可能是搜索错误的术语。

问题:我正在开发一个有许多进程(可能是数百甚至数千)的应用程序。每个进程可能有唯一的输入和输出数据格式 - 可以是多行字符串逗号分隔字符串excelcsv 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


    【解决方案1】:

    也许您可以将函数的输出作为一个元组使用“数据类型”和“输出”键作为实际输出

    【讨论】:

    • 这基本上是我打算做的,但是在定义输入和输出是什么以及如何存储这些定义方面存在一层复杂性,这是我的挑战。我添加了一些细节以进一步澄清。
    • 我对此表示赞同,因为它激发了我认为可行的解决方案。我将把模板作为 json 存储在 dB 中,以及其他几个描述输入的列。打算试一试,看看效果如何。谢谢斯文!
    猜你喜欢
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2019-12-12
    • 2013-07-31
    • 2011-01-22
    • 2011-02-09
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多