python变量类型格式化,结果补全值

本文介绍了一种Python中用于检查和处理数据类型的实用方法。包括判断值是否为整数或浮点数,并提供了一个完整的类来展示如何使用这些方法进行数据格式化和补全。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在python对数据进行存储的时候,经常会遇到类型的错误,或者缺少某字段存储是吧。就随手写了一个简单的工具类

1,判断值是否是int

# 通过抛出异常
def is_int_by_except(value):
    value = str(value)
    try:
        int(value)
        return True
    except ValueError:
        #        print "%s ValueError" % value
        return False
我是通过最常见的异常做处理

2,判断值是否是float

def is_float_by_except(string):
    str1 = str(string)
    if str1.count('.') != 1:  # 判断小数点是不是大于1
        return False
    elif str1.isdigit():
        return False  # 判断是不是整数
    else:
        new_str = str1.split('.')  # 按小数点分割字符
        frist_num = new_str[0]  # 取分割完之后这个list的第一个元素
        if frist_num.count('-') > 1:  # 判断负号的格数,如果大于1就是非法的
            return False
        else:
            frist_num = frist_num.replace('-', '')  # 把负号替换成空
        if frist_num.isdigit() and new_str[1].isdigit():
            # 如果小数点两边都是整数的话,那么就是一个小数
            return True
        else:
            return False
判断是否是float的方法有很多,只要能实现都可以

3,然后就是调用方法check值的类型

def check_result_type(result):
    """
    检查存储结果的类型
    :param result: 需要格式化的结果
    :return:
    """
    if is_int_by_except(result):
        return int(result)
    elif is_float_by_except(result):
        return float(result)
    else:
        return result
其实很简单不是嘛,调用一下就可以了

4,然后就是数据的补全并赋值“0”

def format_result(result, rows):
    """
    格式化补全结果
    :param result:结果
    :param rows: 行
    :return: 格式化后的结果
    """
    for row in rows.keys():
        if row in result.keys():
            result[row] = check_result_type(result[row])
        else:
            if rows.get(row) == "int":
                result[row] = 0
            elif rows.get(row) == "float":
                result[row] = 0.00
            else:
                result[row] = "0"
    return result
python写起来很舒服。

5,写个main方法库测试一下

class CheckResultType(object):
    def __init__(self):
        self.result = {"id": "2333", "name": "张三", "value": 1111, "type": 9, "keyword_task_id": 3222.0}

    def format_result(self):
        types = {"id": "int",
                 "name": "string",
                 "value": "float",
                 "type": "int",
                 "keyword_task_id": "int",
                 "class": "int"}
        print format_result(self.result, types)


if __name__ == '__main__':
    CheckResultType().format_result()

简单直接。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值