ai-coding-mines목차GitHub

반환 스키마를 가정하면 조용히 헛돈다

Python · DB

증상

h = get(...) 로 받아 in·정규식·길이 검사를 걸었는데 전건 미발견으로 나온다. 예외는 안 난다.

원인

get()(status, body) 튜플을 돌려주고 있었다. 튜플에 in을 걸면 원소 동등성 검사가 되어 항상 False, len()은 2가 된다. 문법적으로 전부 유효해서 아무도 안 죽는다.

해법

status, body = get(...) 로 언패킹. 그리고 반환 스키마를 가정하지 말고 한 번 찍어보고 쓴다.

검증

print(type(r), repr(r)[:200])

진행 파일·집계 대상도 마찬가지다. list(d.items())[:3]으로 값 스키마를 먼저 본다. 스키마를 가정하고 돌린 집계는 0을 내놓고, 0은 "데이터 없음"으로 오독된다.