From 12f6554d8c4c80a66821995cd3b7057724ca6a61 Mon Sep 17 00:00:00 2001 From: liuyebo <1515783401@qq.com> Date: Mon, 17 Feb 2025 13:00:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E5=85=A8=E8=A7=92=E6=95=B0?= =?UTF-8?q?=E5=AD=97=E5=AD=98=E5=85=A5=E6=95=B0=E6=8D=AE=E5=BA=93=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 2 +- util/data_util.py | 5 +++-- util/string_util.py | 23 +++++++++++++++++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index adf831a..fa57f78 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ x-env: &template - image: fcb_photo_review:1.14.15 + image: fcb_photo_review:1.14.16 restart: always x-review: diff --git a/util/data_util.py b/util/data_util.py index faea57e..7093ca4 100644 --- a/util/data_util.py +++ b/util/data_util.py @@ -2,7 +2,7 @@ import logging import re from datetime import datetime -from util import util +from util import util, string_util # 处理金额类数据 @@ -12,6 +12,7 @@ def handle_decimal(string): string = re.sub(r'[^0-9.]', '', string) if not string: return "" + string = string_util.full_to_half(string) if "." not in string: if len(string) > 2: result = string[:-2] + "." + string[-2:] @@ -182,7 +183,7 @@ def handle_settlement_id(string): def handle_age(string): if not string: return "" - string = string.split("岁")[0] + string = string_util.full_to_half(string.split("岁")[0]) num = re.sub(r'\D', '', string) return num[-3:] diff --git a/util/string_util.py b/util/string_util.py index 985f40d..a69237d 100644 --- a/util/string_util.py +++ b/util/string_util.py @@ -1,3 +1,6 @@ +import unicodedata + + def blank(string): """ 判断字符串是否为空或者纯空格 @@ -5,3 +8,23 @@ def blank(string): :return: 字符串是否为空或者纯空格 """ return not string or string.isspace() + + +def full_to_half(string): + """ + 全角转半角 + :param string: 字符串 + :return: 半角字符串 + """ + if not isinstance(string, str): + raise TypeError("全角转半角的输入必须是字符串类型") + + if not string: + return string + + half_string = ''.join([ + unicodedata.normalize('NFKC', char) if unicodedata.east_asian_width(char) in ['F', 'W'] else char + for char in string + ]) + + return half_string