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