from pathlib import Path import requests import json import base64 from itertools import chain url = 'http://192.168.199.249:38811' def send_request(img_path, image_type=0): with open(img_path, 'rb') as f: img_str: str = base64.encodebytes(f.read()).decode('utf-8') data = { 'image': img_str, 'image_type': image_type } r = requests.post(f'{url}/ocr_system/regbook', json=data) print(r.json()) return r.json() def _parse_result(r): if r['status'] == '000': r = r['result'] if r: del r['confidence'] res = {} for k, v in r.items(): if isinstance(v, dict): res[k] = v['text'] else: res[k] = v return res elif r['status'] == '101': return "101" if __name__ == '__main__': # 0 # root = Path(__file__).parent # print(root) # img_paths = chain( # *[Path(root / 'images/clean/0').rglob(f'*.{ext}') for ext in ['jpeg', 'jpg', 'png', 'JPG', 'PNG']]) # for img_path in img_paths: # print(img_path) # r = send_request(img_path, 0) # res = _parse_result(r) # print(res) # img_path: Path = img_path # d = img_path.parent # fn = img_path.stem + '.json' # # with (d / fn).open('w', encoding='utf-8') as f: # json.dump(res, f, ensure_ascii=False, indent=4) root = Path(__file__).parent print(root) img_paths = chain( *[Path(root / 'images/clean/1').rglob(f'*.{ext}') for ext in ['jpeg', 'jpg', 'png', 'JPG', 'PNG']]) for img_path in img_paths: print(img_path) r = send_request(img_path, 1) res = _parse_result(r) print(res) img_path: Path = img_path d = img_path.parent fn = img_path.stem + '.json' with (d / fn).open('w', encoding='utf-8') as f: json.dump(res, f, ensure_ascii=False, indent=4)