공공기관2 작업 중. _temp 몽타주(재생성가능)는 제외. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
23 lines
1.3 KiB
Python
23 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# 청양 라벨 대조: 현재파일 vs 몽타주json. 어긋나는 시작점/오프셋 탐지 + 현재 N상태
|
|
import openpyxl, json, io, sys
|
|
sys.stdout=io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
|
|
F=r'D:\01.프로젝트\DB수집\작업파일\광역_사이트맵\충청남도\13.청양군\충청남도_청양군.xlsx'
|
|
wb=openpyxl.load_workbook(F); ws=wb.active
|
|
j=json.load(open('_cy2_123.json',encoding='utf-8'))
|
|
def lab(r):
|
|
return str(ws.cell(r,7).value or ws.cell(r,6).value or ws.cell(r,5).value or '')[:18]
|
|
print('현재 max_row',ws.max_row,'| 데이터행(B있는)',sum(1 for r in range(3,ws.max_row+1) if ws.cell(r,2).value))
|
|
print('=== row | 현재label | json[row].label | 일치? | 현재N ===')
|
|
mismatch_start=None
|
|
for r in range(123, min(ws.max_row,391)+1):
|
|
cl=lab(r)
|
|
jl=str(j.get(str(r),{}).get('label') or '')[:18]
|
|
ok = (cl==jl) or (jl=='None' and cl=='')
|
|
mark='' if ok else ' <<<MISMATCH'
|
|
if not ok and mismatch_start is None: mismatch_start=r
|
|
# 처음 어긋나는 구간과 그 앞뒤만 자세히
|
|
if 123<=r<=170 or (mismatch_start and mismatch_start-2<=r<=mismatch_start+8):
|
|
print('r%d | %-18s | %-18s |%s N=%s'%(r,cl,jl,mark,ws.cell(r,14).value))
|
|
print('첫 mismatch row:',mismatch_start)
|