import json import re import sys raw = open(r"E:\DragonHD\backup_game\Strings.dat", "rb").read() pat = re.compile( rb'Id\s*=\s*"([^"]*)"\s*[\r\n]+\s*English\s*=\s*"((?:[^"\\]|\\.)*)"', re.S, ) out = [] for m in pat.finditer(raw): out.append([m.group(1).decode("latin1"), m.group(2).decode("latin1")]) print("entries:", len(out)) dst = r"E:\DragonHD\build\strings_en.json" open(dst, "w", encoding="utf-8").write(json.dumps(out, ensure_ascii=False, indent=0)) print("wrote", dst)