ocr_result = ocr.kakao_ocr(path, appkey).json() #Python dict
변수 ocr_result
가 위 사진과 같이 Python 객체(dict)로 나오는데,
recognition_words
만 저장하고 싶다.
갖고 있는 변수가 JSON/Python 객체면loads(),dumps()
를 사용하면 된다.
나같은 경우에는 Python 객체(dict)로 사용할꺼라서 사용하지 않아도 됐다.
import json
ocr_result = ocr.kakao_ocr(path, appkey).json() #Python dict
dumps = json.dumps(ocr_result, ensure_ascii=False)
ensure_ascii=False
는 한글텍스트를 한글로 나오게 해준다.
import json
ocr_result = ocr.kakao_ocr(path, appkey).json() #Python dict
dumps = json.dumps(ocr_result, ensure_ascii=False) # JSON
loads = json.loads(dumps)
import json
import re
print = []
for i in range(len(ocr_result['result'])):
print.append(ocr_result['result'][i]['recognition_words'][0])
str = ' '.join(print)
kind = ''
if re.match(r'(자동차)', str) != None:
msg = str
kind = "운전면허증"
elif re.match(r'(주민)', str) != None:
msg = str
kind = "주민등록증"
else:
msg = str
kind = "텍스트"
print = []
for i in range(len(ocr_result['result'])):
print.append(ocr_result['result'][i]['recognition_words'][0])
str = ' '.join(print)
kind = ''
print
변수는 value(recognition_words)
를 담을 array(배열)
이다.
range()
함수를 통하여value.length
만큼 for문을 돌면서 모든 value
값을 print
에 저장한다.
print
에 저장된 value
를 더 쉽게 추출하기 위해 str
변수를 사용한다.
join()
함수를 통하여 새로운 str
변수에 value
값을 저장한다.
마지막으로 주민등록증/운전면허증을 구분해줄 kind
변수를 생성한다.
if re.match(r'(자동차)', str) != None:
msg = str
kind = "운전면허증"
elif re.match(r'(주민)', str) != None:
msg = str
kind = "주민등록증"
else:
msg = str
kind = "텍스트"
정규표현식(re)을 이용한다.
re.match(r'정규표현식조건', 변수)
변수가 정규표현식조건을 만족하지 못하면 None을 반환한다.
1) value
에 '자동차'가 들어가면 운전면허증
2) value
에 '주민'이 들어가면 주민등록증
3) value
에 둘다 안들어가면 그냥 텍스트
msg
변수에는 이미지가 변환된 텍스트를 나타낸다.
kind
변수에는 이미지의 종류를 나타낸다. (운전면허증/주민등록증/텍스트 중 1)
JSON 데이터를 효율적이게 파싱하지 못했다..
정규식표현도 더 공부해야 될 듯..
파이썬-정규표현식과-re모듈
파이썬 정규식 예제
드림코딩 정규식 깃허브
정규식 연습사이트
loads(),dumps() JSON모듈설명