python 使用预定义模式将dict转换为对象的简单方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用预定义模式将dict转换为对象的简单方法相关的知识,希望对你有一定的参考价值。

class BalanceItem(object):
    _fields_map = {'id': {'raw_field': '_id'},
                   'tradecco': {'raw_field': 'tradeacco'},
                   'code': {'raw_field': 'fundid'},
                   # holding share
                   'balance': {'raw_field': 'balance'},
                   # disposable share
                   'avaliable': {'raw_field': 'avaliable'},
                   'market_value': {'raw_field': 'mktvalue'},
                   'dayprofit': {'raw_field': 'dayprofit'},
                   # with unprofit included
                   'profit': {'raw_field': 'profit'},
                   'unprofit': {'raw_field': 'unprofit'},
                   # only for ZYB products currently
                   'expprofit': {'raw_field': 'expprofit'},
                   # total yield rate
                   'yield_rate': {'raw_field': 'profitprop'},
                   'melonmd': {'raw_field': 'melonmd', 'choices': melonmd_map},
                   }

    def __init__(self, raw_data):
        self._raw_data = raw_data
        for attr, opts in self._fields_map.items():
            raw_field = opts['raw_field']
            value = raw_data.get(raw_field, None)
            choices = opts.get('choices')
            if choices:
                value = {'id': value, 'display': choices.get(value)}

            setattr(self, attr, value)

    def __nonzero__(self):
        return True if self._raw_data and self.code else False

以上是关于python 使用预定义模式将dict转换为对象的简单方法的主要内容,如果未能解决你的问题,请参考以下文章

Python dict 自动将列表类型值转换为简单对象

python 将dict转换为对象

python 将对象转换为dict

python 递归地将嵌套的dicts转换为嵌套的namedtuples,为您提供类似于不可变对象文字的东西

从csv读取到数据框pandas python时,dict对象转换为字符串

python pandas数据框列转换为dict键和值