from pathlib import Path import requests import json import base64 from itertools import chain url = 'http://192.168.199.27:18040' imgs_path = '../img' 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 } # idc_header = { # 'Content-Type': 'application/json', # 'Authorization': 'Bearer 4e00c444-620b-4d3c-85f4-777e64276f0e' # } 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'] return {k: v['text'] if isinstance(v, dict) else v for k, v in r.items()} elif r['status'] == '101': return "101" if __name__ == '__main__': # 0 root = Path(__file__).parent print(root) # img_paths = chain(*[Path(root / imgs_path).rglob(f'*.{ext}') for ext in ['jpeg', 'jpg', 'png', 'JPG', 'PNG']]) img_paths = chain(*[Path(root / imgs_path).rglob(f'*.{ext}') for ext in ['jpg']]) for img_path in img_paths: print(img_path) r = send_request(img_path) res = _parse_result(r) print(res) img_path: Path = img_path d = img_path.parent fn = f'{img_path.stem}.json' with (d / fn).open('w', encoding='utf-8') as f: json.dump(res, f, ensure_ascii=False, indent=4)