#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package DB.DBComm # # @todo:DBComm # @author hxp # @date 2025-05-09 # @version 1.0 # # ÏêϸÃèÊö: DBComm # #------------------------------------------------------------------------------- #"""Version = 2025-05-09 12:20""" #------------------------------------------------------------------------------- import json class UserDataDict(): '''¸ù¾ÝÊý¾Ý×Ô¶¨Òå×Ö·û×Ö¶Îת»¯Îª×ֵ䴦Àí£¬¼õÉÙeval£¬·½±ã¿ìËÙ´æÈ¡ Èç¹ûÐèÒª°´list´æ´¢µÄ£¬½¨Òé¿ÉÒÔ¶¨ÒåÒ»¸ökeyÈ»ºó»¹Êǰ´×ֵ䴿´¢£¬·½±ãÖ®ºóÀ©Õ¹ÆäËûÊôÐÔ ËùÒÔËùÓеÄ×Ö·ûÀ©Õ¹Êý¾Ý½¨ÒéͳһÒÔ×ÖµäµÄ¸ñʽ´æ´¢£¬Èë¿âʱ¿Éѡֱ½Óת»¯Îªjson¸ñʽ»òÖ±½Óstr ''' def __init__(self, dataObj, dataAttrName, dataLenAttrName, toJson=False): ''' @param dataObj: Êý¾ÝʵÀý¶ÔÏó @param dataAttrName: ×Ö·ûÀ©Õ¹ÊôÐÔÃû @param dataLenAttrName: ×Ö·ûÀ©Õ¹ÊôÐÔ³¤¶ÈÃû ''' self.__dataObj = dataObj self.__dataAttrName = dataAttrName self.__dataLenAttrName = dataLenAttrName self.__toJson = toJson self.__dataDict = None return def GetData(self): if self.__dataDict == None: try: self.__dataDict = eval(getattr(self.__dataObj, self.__dataAttrName)) except: self.__dataDict = {} return self.__dataDict def SetData(self, setValue): '''Ö±½ÓÉèÖÃÌæ»»Êý¾Ý @param dataStr: ¿ÉÒÔÊÇÈÎÒâÊý¾Ý¸ñʽ£¬Èç¹ûÊÇ×Öµä»á½øÐÐJson»ò×Ö·û´®×ª»¯ ''' if not setValue: dataStr = "" elif isinstance(setValue, dict) and self.__toJson: dataStr = json.dumps(setValue, ensure_ascii=False) else: dataStr = str(setValue) dataStr = dataStr.replace(" ", "") # Ìæ»»¿Õ¸ñ£¬¼õÉÙ³¤¶È if self.__dataObj: setattr(self.__dataObj, self.__dataAttrName, dataStr) setattr(self.__dataObj, self.__dataLenAttrName, len(dataStr)) if setValue != None and isinstance(setValue, dict) and self.__dataDict != setValue: self.__dataDict = setValue return def ToString(self): ## ת»¯Îª×Ö·û´® if self.__dataDict != None: self.SetData(self.__dataDict) return getattr(self.__dataObj, self.__dataAttrName)