【问题标题】:Parsing EDI X12 file using Python使用 Python 解析 EDI X12 文件
【发布时间】:2021-07-27 14:04:01
【问题描述】:

我只想使用 python 解析 EDI 文件。我不确定哪种是解析此类 EDI 文件的最佳方法。或者我应该将此 EDI 转换为其他格式然后进行解析吗?我不知道。请帮帮我。提前致谢。

EDI X12 文件示例如下。

ISA00 00 0100060902413PRD ZZRT2004010044 U004019900025210P|~ GSSH0060902413B2B004919486202004010044990002521X004010~ ST856990002521~ BSN00SHPMORSC4983493955202003311647TS~ HL*1S~ REF8XASN~ DTM00220200331164718~ N1STXYZ Ltd91WH3PL1LOC1~ N3XYZ Ltd Logistics,4601 Stilwell Street~ N4堪萨斯城64120美国SPMO~ N1SFA 电脑91CM1LOC1~ N3A Computers Rd, 110~ N4*Ran91730美国SPCA~ HL21O~ REF7960Y~ 参考MORC493493955~ REFCRMRS4983493955~ HL32T~ MEAPDG1.00LB~ MEAPDHT1.00IN~ MEAPDLN1.00IN~ MEAPDWD1.00IN~ MANGM134015~ HL43P~ MANGM136096~ HL54我~ LIN1VP1003200-01-RCH美国~ SN110EA**10EA~ REFP4MAIN~ REFJBMAIN~ HL62T~ MEAPDG1.00LB~ MEAPDHT1.00IN~ MEAPDLN1.00IN~ MEAPDWD1.00IN~ MANGM134015~ HL76P~ MANGM132973~ HL87我~ LIN2VP72004985-03-RCH美国~ SN110EA**10EA~ 参考SEAJ162918473~ 参考SEAJ163222283~ 参考SEAJ173032198~ 参考SEAJ162915706~ 参考SEAJ174446687~ 参考SEAJ163229302~ 参考SEAJ163228027~ 参考SEAJ174450336~ 参考SEAJ162404159~ 参考SEAJ162913903~ REFP4239326~ REFJBMAIN~ PKGF**LHR25 :ZI1, 226, PM: tii@, 收件人联系方式:tilt7.~ PKGF**02_0>25600~CTT8~ SE24069990002521~ 通用电气1990002521~ 国际能源署1*990002521~

【问题讨论】:

  • 您需要使用 EDI 做什么?只要你知道结构,它只是文本。你可以考虑试试 BOTS (bots.sourceforge.net/en/index.shtml)
  • 我必须根据使用python的要求从每个段中解析和获取一些必需的元素来创建一些出站文件。
  • 那么 EDI 是入站的,您想要解析它并创建出站的文档/数据馈送?
  • 是的。你是对的。这是一种 3PL 交易使用。将使用 ASN EDI(856, 861,940,945,846,947) 格式。
  • 好的 - 所以这些文档中的一些是入站的,而一些是出站的。例如,945 是对 940 的响应。因此,如果 940 是入站,则 945 是出站。你在这里重新发明了一个轮子。 EDI 翻译器的存在就是为了将数据从 EDI 转换为商业格式,反之亦然。

标签: python parsing edi x12


【解决方案1】:

正如我所见,您首先要解析 X12 856 TRANSACTION 集,您需要决定要解析为另一种 EDI 格式或任何其他 CSV/XML 格式。

根据我在 Python 解析方面的经验,我在我们的 python 目录中使用轻量级解析器包。

我们遵循以下步骤。

1-为EDI 835 PARSER安装二进制python包。(pip install edi-835-parser)

2-我们使用解析函数来运行二进制包

3-然后我们在目录路径上解析函数。

path = '~/Desktop/my_directory_of_edi_files'
transaction_sets = parse(path)

4-然后我们根据中间件集成工具的文件夹目录导入解析器函数。

from edi_835_parser import parse

path = '~/etc/my_directory_of_edi_files'
transaction_sets = parse(full directory path destination)

data = transaction_sets.to_dataframe()

5-然后将该 pd.DataFrame 保存为 .csv/xml 文件。

6-在上面之后测试包和解析器。

我们遵循这个不确定这是否有助于您的查询,但您可以探索 Python EDI 集的二进制解析器包,这可能会有所帮助。

谢谢

【讨论】:

    猜你喜欢
    • 2012-02-10
    • 2018-08-16
    • 2017-09-17
    • 2010-09-19
    • 2016-01-29
    • 2010-11-03
    • 2013-01-16
    • 2013-05-19
    • 1970-01-01
    相关资源
    最近更新 更多