Newer
Older
lynxi-casic-demo / string_utils.py
zhangyingjie on 24 Jan 961 bytes 增加后台接口调用
import importlib
import re
from datetime import datetime


def get_class(module_name, class_name):
    # 动态导入模块
    module = importlib.import_module(module_name)
    # 使用 getattr 从模块中获取类
    return getattr(module, class_name)

def get_fun(module_name, function_name):
    module = importlib.import_module(module_name)
    return getattr(module, function_name)

def camel_to_snake(name):
    # 将大写字母前加上下划线,并将整个字符串转换为小写(驼峰转下划线)
    return re.sub(r'(?<!^)(?=[A-Z])', '_', name).lower()


def snake_to_camel(name):
    # 将下划线后的字母转换为大写,并删除下划线(下划线转驼峰)
    return ''.join(word.capitalize() for word in name.split('_'))


def default_serializer(obj):
    if isinstance(obj, datetime):
        return obj.strftime('%Y-%m-%d %H:%M:%S')
    raise TypeError(f"Object of type {obj.__class__.__name__} is not JSON serializable")