#!/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)
|
|
|
|