如何解决Python copybook解析器抛出的pyparsing.ParseException报错
问题解答
1. 模块对当前copybook格式的支持情况
该copybook解析模块仅支持符合标准COBOL copybook根层级规则的文件:
- 解析器默认要求copybook的最顶层字段定义必须为
01级条目,你当前提供的copybook属于COBOL copybook的段定义,最高字段层级仅到05,缺失解析器要求的01级根节点,因此触发匹配失败报错。 - 你当前使用的copybook字段定义格式(包括PIC、COMP、REDEFINES、88级条件名等语法)本身是被模块支持的,仅根层级不符合要求。
2. 需要修改的copybook内容
仅需对copybook做1处核心修改即可正常解析:
在所有注释结束后、第一个05级字段定义前,新增一个01级根节点,节点名称可自定义,同时保持原有缩进规则即可。修改后的copybook开头示例如下:
******************* DDS COPYLIB GENERATION ****************** * Segment name : AMSAM32 ************************************************************** 01 AMSAM32-SEGMENT. 05 AM32-ACCT-DISPUTE-INFO. 10 AM32-SEGMENT-LENGTH PIC S9(4) COMP. # 后续原有内容保持不变即可
你之前添加行号的操作无法解决问题,因为报错的核心原因是缺失01级根节点,和行号无关。
内容的提问来源于stack exchange,提问作者Jay Yuan
相关产品推荐
相关产品推荐

