python将json字典转换为对象格式
  TEZNKK3IfmPf 2023年11月13日 33 0

示例代码1:

from collections import OrderedDict
import json

data = '{"name":"张三","age":50,"prices":520.1314}'
json_data = json.loads(data, object_pairs_hook=OrderedDict)
print(json_data)
print(json_data['name'])
# print(json_data.name)   #  此时会报错

运行效果2:

python将json字典转换为对象格式

示例代码3:

from collections import OrderedDict
import json


class JsonObject(object):
    def __init__(self, d):
        self.__dict__ = d


data = '{"name":"张三","age":50,"prices":520.1314}'
json_data = json.loads(data, object_hook=JsonObject)
print(json_data)
# print(json_data['name'])  #  此时会报错
print(json_data.name)   

运行效果:

python将json字典转换为对象格式

示例代码4:

import json


class JsonObject(object):
    def __init__(self, d):
        self.__dict__ = d


data = '{"name":"张三","age":50,"prices":520.1314,"books":{"语文":"济南的冬天","数学":"奥数题"}}'
json_data = json.loads(data, object_hook=JsonObject)
print(json_data)
# print(json_data['name'])  #  此时会报错
print(json_data.name)
print(json_data.books)
print(json_data.books.语文)

运行效果:

python将json字典转换为对象格式

示例代码5:

class DictObj(dict):
    def __getattr__(self, item):
        print("get attr")
        if item not in self:
            return None
        else:
            value = self[item]
            if isinstance(value, dict):
                value = DictObj(value)
            return value


dic = {
    "name": "dgw",
    "location": {
        "province": "山东省",
        "city": "青岛市"
    }
}

obj = DictObj(dic)
print(obj.name)
print("*" * 100)
print(obj.location)
print("*" * 100)
print(obj.location.city)
print("*" * 100)
print(obj.location.city1)

运行结果:

python将json字典转换为对象格式

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   39   0   0 python开发语言
TEZNKK3IfmPf