添加日期类的json处理

This commit is contained in:
2024-07-02 16:55:48 +08:00
parent 104fd33088
commit b64ccad862

View File

@@ -1,3 +1,4 @@
import datetime
import json import json
import os import os
import sys import sys
@@ -26,9 +27,12 @@ def check_ie_result(pk_phhd):
session = MysqlSession() session = MysqlSession()
phhd = session.query(ZxPhhd.cXm).filter(ZxPhhd.pk_phhd == pk_phhd).one() phhd = session.query(ZxPhhd.cXm).filter(ZxPhhd.pk_phhd == pk_phhd).one()
json_result["cXm"] = phhd.cXm json_result["cXm"] = phhd.cXm
settlement = session.query(ZxIeSettlement.pk_ie_settlement, ZxIeSettlement.name, ZxIeSettlement.admission_date, ZxIeSettlement.discharge_date, settlement = session.query(ZxIeSettlement.pk_ie_settlement, ZxIeSettlement.name, ZxIeSettlement.admission_date,
ZxIeSettlement.medical_expenses, ZxIeSettlement.personal_cash_payment, ZxIeSettlement.personal_account_payment, ZxIeSettlement.discharge_date,
ZxIeSettlement.personal_funded_amount, ZxIeSettlement.medical_insurance_type).filter(ZxIeSettlement.pk_phhd == pk_phhd).one() 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 = { settlement_result = {
"pk_ie_settlement": settlement.pk_ie_settlement, "pk_ie_settlement": settlement.pk_ie_settlement,
"name": settlement.name, "name": settlement.name,
@@ -42,8 +46,10 @@ def check_ie_result(pk_phhd):
} }
json_result["settlement"] = settlement_result json_result["settlement"] = settlement_result
discharge = session.query(ZxIeDischarge.pk_ie_discharge, ZxIeDischarge.hospital, ZxIeDischarge.pk_yljg, ZxIeDischarge.department, ZxIeDischarge.pk_ylks, discharge = session.query(ZxIeDischarge.pk_ie_discharge, ZxIeDischarge.hospital, ZxIeDischarge.pk_yljg,
ZxIeDischarge.name, ZxIeDischarge.admission_date, ZxIeDischarge.discharge_date, ZxIeDischarge.doctor).filter(ZxIeDischarge.pk_phhd == pk_phhd).one() ZxIeDischarge.department, ZxIeDischarge.pk_ylks,
ZxIeDischarge.name, ZxIeDischarge.admission_date, ZxIeDischarge.discharge_date,
ZxIeDischarge.doctor).filter(ZxIeDischarge.pk_phhd == pk_phhd).one()
discharge_result = { discharge_result = {
"pk_ie_discharge": discharge.pk_ie_discharge, "pk_ie_discharge": discharge.pk_ie_discharge,
"hospital": discharge.hospital, "hospital": discharge.hospital,
@@ -57,7 +63,8 @@ def check_ie_result(pk_phhd):
} }
json_result["discharge"] = discharge_result 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 = { cost_result = {
"pk_ie_cost": cost.pk_ie_cost, "pk_ie_cost": cost.pk_ie_cost,
"name": cost.name, "name": cost.name,
@@ -67,7 +74,8 @@ def check_ie_result(pk_phhd):
} }
json_result["cost"] = cost_result 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: for phrec in phrecs:
img_name = phrec.cfjaddress img_name = phrec.cfjaddress
img_path = ucloud.get_private_url(img_name) img_path = ucloud.get_private_url(img_name)
@@ -77,7 +85,8 @@ def check_ie_result(pk_phhd):
size = image.width * image.height / 200000 size = image.width * image.height / 200000
font = ImageFont.truetype("./font/simfang.ttf", size=size) 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: if not ocr:
os.makedirs(f"./check_result/{pk_phhd}/0", exist_ok=True) os.makedirs(f"./check_result/{pk_phhd}/0", exist_ok=True)
image.save(f"./check_result/{pk_phhd}/0/{img_name}") 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}") image.save(f"./check_result/{pk_phhd}/{ocr_item.id}/{img_name}")
session.close() session.close()
# 自定义JSON处理器来处理Decimal类型 # 自定义JSON处理器
def decimal_default(obj): def default(obj):
if isinstance(obj, Decimal): if isinstance(obj, Decimal):
return float(obj) 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: 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__': if __name__ == '__main__':
check_ie_result(3866770) check_ie_result(3990334)