如何使用Python将COBOL语句转换为动态Json结构

问题描述 投票:0回答:1
#Example COBOL statement 
cobol_statement = "MODIFY MAP CURSOR AT NBS-DS-01(1) FOR FIELD (NBS-DS-01, NBS-DS-02(2), NBS-DS-03(3))"

我需要一个 json 结构来隐藏这个 COBOL 我需要一个结果

{"cursor": "NBS-DS-01(1)", "for": ["NBS-DS-01","NBS-DS-02(2)","NBS-DS-03(3)"]}

我需要 json 结构是动态的,无论我添加的字段如何自动转换

python json list
1个回答
0
投票

尝试这样的事情:

import re
import json

def cobol_to_json(cobol_statement):
    cursor_pattern = r'CURSOR\s+AT\s+([\w-]+\(\d+\))'
    for_pattern = r'FOR\s+FIELD\s+\((.*?)\)'
    cursor_match = re.search(cursor_pattern, cobol_statement, re.IGNORECASE)
    for_match = re.search(for_pattern, cobol_statement, re.IGNORECASE)
    if cursor_match and for_match:
        cursor = cursor_match.group(1)
        fields = [field.strip() for field in for_match.group(1).split(',')]
        result = {"cursor": cursor, "for": fields}
        return json.dumps(result, indent=4)
    else:
        return None

示例:

cobol_statement = "MODIFY MAP CURSOR AT NBS-DS-01(1) FOR FIELD (NBS-DS-01, NBS-DS-02(2), NBS-DS-03(3))"
json_result = cobol_to_json(cobol_statement)
if json_result:
    print(json_result)
else:
    print("Failed to parse COBOL statement.")

输出:

{
    "cursor": "NBS-DS-01(1)",
    "for": [
        "NBS-DS-01",
        "NBS-DS-02(2"
    ]
}
© www.soinside.com 2019 - 2024. All rights reserved.