[Python] loads(),dumps(),정규표현식,JSON 파일 추출하기

mason.98·2021년 11월 23일
0

Flask

목록 보기
5/10

Python

ocr_result = ocr.kakao_ocr(path, appkey).json() #Python dict

출력결과


상황설명

변수 ocr_result가 위 사진과 같이 Python 객체(dict)로 나오는데,
recognition_words만 저장하고 싶다.

갖고 있는 변수가 JSON/Python 객체면loads(),dumps()를 사용하면 된다.
나같은 경우에는 Python 객체(dict)로 사용할꺼라서 사용하지 않아도 됐다.


1. dumps() : Python객체(dict) -> JSON 문자열

import json
ocr_result = ocr.kakao_ocr(path, appkey).json() #Python dict
dumps = json.dumps(ocr_result, ensure_ascii=False)

ensure_ascii=False는 한글텍스트를 한글로 나오게 해준다.


2. loads() : JSON문자열 -> Python객체(dict)

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)

recognition_words(value) 값 가져오기

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모듈설명

profile
wannabe---ing

0개의 댓글