From b64ccad862c35924c97c4d28967c3902cf9c222e Mon Sep 17 00:00:00 2001 From: liuyebo <1515783401@qq.com> Date: Tue, 2 Jul 2024 16:55:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A5=E6=9C=9F=E7=B1=BB?= =?UTF-8?q?=E7=9A=84json=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- check_ie_result/check_ie_result.py | 35 ++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/check_ie_result/check_ie_result.py b/check_ie_result/check_ie_result.py index 6a63a31..c870516 100644 --- a/check_ie_result/check_ie_result.py +++ b/check_ie_result/check_ie_result.py @@ -1,3 +1,4 @@ +import datetime import json import os import sys @@ -26,9 +27,12 @@ def check_ie_result(pk_phhd): session = MysqlSession() phhd = session.query(ZxPhhd.cXm).filter(ZxPhhd.pk_phhd == pk_phhd).one() json_result["cXm"] = phhd.cXm - settlement = session.query(ZxIeSettlement.pk_ie_settlement, ZxIeSettlement.name, ZxIeSettlement.admission_date, ZxIeSettlement.discharge_date, - ZxIeSettlement.medical_expenses, ZxIeSettlement.personal_cash_payment, ZxIeSettlement.personal_account_payment, - ZxIeSettlement.personal_funded_amount, ZxIeSettlement.medical_insurance_type).filter(ZxIeSettlement.pk_phhd == pk_phhd).one() + settlement = session.query(ZxIeSettlement.pk_ie_settlement, ZxIeSettlement.name, ZxIeSettlement.admission_date, + ZxIeSettlement.discharge_date, + ZxIeSettlement.medical_expenses, ZxIeSettlement.personal_cash_payment, + ZxIeSettlement.personal_account_payment, + ZxIeSettlement.personal_funded_amount, ZxIeSettlement.medical_insurance_type).filter( + ZxIeSettlement.pk_phhd == pk_phhd).one() settlement_result = { "pk_ie_settlement": settlement.pk_ie_settlement, "name": settlement.name, @@ -42,8 +46,10 @@ def check_ie_result(pk_phhd): } json_result["settlement"] = settlement_result - discharge = session.query(ZxIeDischarge.pk_ie_discharge, ZxIeDischarge.hospital, ZxIeDischarge.pk_yljg, ZxIeDischarge.department, ZxIeDischarge.pk_ylks, - ZxIeDischarge.name, ZxIeDischarge.admission_date, ZxIeDischarge.discharge_date, ZxIeDischarge.doctor).filter(ZxIeDischarge.pk_phhd == pk_phhd).one() + discharge = session.query(ZxIeDischarge.pk_ie_discharge, ZxIeDischarge.hospital, ZxIeDischarge.pk_yljg, + ZxIeDischarge.department, ZxIeDischarge.pk_ylks, + ZxIeDischarge.name, ZxIeDischarge.admission_date, ZxIeDischarge.discharge_date, + ZxIeDischarge.doctor).filter(ZxIeDischarge.pk_phhd == pk_phhd).one() discharge_result = { "pk_ie_discharge": discharge.pk_ie_discharge, "hospital": discharge.hospital, @@ -57,7 +63,8 @@ def check_ie_result(pk_phhd): } json_result["discharge"] = discharge_result - cost = session.query(ZxIeCost.pk_ie_cost, ZxIeCost.name, ZxIeCost.admission_date, ZxIeCost.discharge_date, ZxIeCost.medical_expenses).filter(ZxIeCost.pk_phhd == pk_phhd).one() + cost = session.query(ZxIeCost.pk_ie_cost, ZxIeCost.name, ZxIeCost.admission_date, ZxIeCost.discharge_date, + ZxIeCost.medical_expenses).filter(ZxIeCost.pk_phhd == pk_phhd).one() cost_result = { "pk_ie_cost": cost.pk_ie_cost, "name": cost.name, @@ -67,7 +74,8 @@ def check_ie_result(pk_phhd): } json_result["cost"] = cost_result - phrecs = session.query(ZxPhrec.pk_phrec, ZxPhrec.pk_phhd, ZxPhrec.cRectype, ZxPhrec.cfjaddress).filter(ZxPhrec.pk_phhd == pk_phhd).all() + phrecs = session.query(ZxPhrec.pk_phrec, ZxPhrec.pk_phhd, ZxPhrec.cRectype, ZxPhrec.cfjaddress).filter( + ZxPhrec.pk_phhd == pk_phhd).all() for phrec in phrecs: img_name = phrec.cfjaddress img_path = ucloud.get_private_url(img_name) @@ -77,7 +85,8 @@ def check_ie_result(pk_phhd): size = image.width * image.height / 200000 font = ImageFont.truetype("./font/simfang.ttf", size=size) - ocr = session.query(ZxOcr.id, ZxOcr.content, ZxOcr.x_offset, ZxOcr.y_offset).filter(ZxOcr.pk_phrec == phrec.pk_phrec).all() + ocr = session.query(ZxOcr.id, ZxOcr.content, ZxOcr.x_offset, ZxOcr.y_offset).filter( + ZxOcr.pk_phrec == phrec.pk_phrec).all() if not ocr: os.makedirs(f"./check_result/{pk_phhd}/0", exist_ok=True) image.save(f"./check_result/{pk_phhd}/0/{img_name}") @@ -105,14 +114,16 @@ def check_ie_result(pk_phhd): image.save(f"./check_result/{pk_phhd}/{ocr_item.id}/{img_name}") session.close() - # 自定义JSON处理器来处理Decimal类型 - def decimal_default(obj): + # 自定义JSON处理器 + def default(obj): if isinstance(obj, Decimal): return float(obj) + if isinstance(obj, datetime.date): + return obj.strftime("%Y-%m-%d") with open(f"./check_result/{pk_phhd}/result.json", "w", encoding="utf-8") as json_file: - json.dump(json_result, json_file, indent=4, ensure_ascii=False, default=decimal_default) + json.dump(json_result, json_file, indent=4, ensure_ascii=False, default=default) if __name__ == '__main__': - check_ie_result(3866770) + check_ie_result(3990334)