#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 结构是动态的,无论我添加的字段如何自动转换
尝试这样的事情:
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"
]
}