Python2中字典中的值通过对象引用获取

一、举例:

比如 :test = {"a": {"b": 1}, "c":3} 取  键值 1 

通过形如  “.a.b”形式获取 1。

二、具体代码实现如下:

# _*_ coding: utf-8 _*_
"""
Time:     2024/1/18 21:50
Author:  
Version:  V 0.1
"""


import collections,json


class JsonToObj(object):
    def __init__(self, mapp):
        self.__dict_d = dict(mapp)

    def __getattr__(self, item):
        if hasattr(self.__dict_d, item):
            return getattr(self.__dict_d, item)
        else:
            return JsonToObj.build(self.__dict_d[item])

    @classmethod
    def build(cls, obj):
        if isinstance(obj, collections.Mapping):
            return cls(obj)
        elif isinstance(obj, collections.MutableSequence):
            return [cls.build(item) for item in obj]
        else:
            return obj

    @classmethod
    def dict_json(cls, dict_info, output_json):
        with open(output_json, 'w') as fw:
            fw.writelines(json.dumps(dict_info))

if __name__ == "__main__":
    test = {"a": {"b": 1}, "c":3}
    ts = JsonToObj(test)
    print(ts.a.b)

三、结果输出

如下:输出结果1

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值