import json, re from pathlib import Path data=json.loads(Path(r"C:\Apache24\htdocs\.codex_tmp\ocr_results.json").read_text(encoding='utf-8-sig')) trans=str.maketrans('٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹','01234567890123456789') rows=[] for r in data: text=(r.get('text') or '').translate(trans) compact=re.sub(r'[^0-9|]+','',text) candidates=[] for line in text.split('|'): digits=re.sub(r'\D','',line) if 6 <= len(digits) <= 9: candidates.append(digits) sid=int(r['file'].split('_')[1]) rows.append({'id':sid,'file':r['file'],'text':text,'candidates':candidates,'chosen':candidates[0] if candidates else ''}) out=Path(r"C:\Apache24\htdocs\.codex_tmp\ocr_candidates.json") out.write_text(json.dumps(rows,ensure_ascii=False,indent=2),encoding='utf-8') print(json.dumps({'rows':len(rows),'with_candidate':sum(bool(r['chosen']) for r in rows),'without':sum(not r['chosen'] for r in rows),'multi':sum(len(r['candidates'])>1 for r in rows)},ensure_ascii=False)) print(json.dumps([r for r in rows if not r['chosen']][:20],ensure_ascii=False))