Python 中Json和其他类型相互转换

json和其他类型转换

项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方法可以快速复制粘贴。
需要用到json包。

  • loads():将json数据转换成为dict字典数据
  • load(): 读取json文件数据,转成dict数据
  • dumps():将dict数据转化成json数据
  • dump(): 将dict数据转换成为json数据之后再写入json文件
"""
@Description: json和其他类型之间互转
"""
import json
import os

class JsonToOtherType:
    """
    @ClassName: JsonToOtherType
    @Description: Json数据和其他数据之间互转
        loads():将json数据转换成为dict字典数据
        load():读取json文件数据,转成dict数据
        dumps():将dict数据转化成json数据
        dump():将dict数据转换成为json数据之后再写入json文件
    """
    def __init__(self):
        """
        @Description:
        """
        pass

    # 设置为静态方法
    @staticmethod
    def dict_to_json(dict_data:dict):
        """
        @Description: dict字典转json数据
        :param dict_data 字典数据
        :return json_data 返回json类型数据
        """
        try:
            json_data = json.dumps(dict_data)
        except Exception as e:
            return e
        return json_data

    @staticmethod
    def obj_to_json(obj_data:object):
        """
        @Description: 对象转json数据
            obj.__dict__:将对象转换成为dict字典类型
            json.dumps():再将字典类型转化为json数据
        :param obj_data 对象数据
        """
        try:
            dict_data = obj_data.__dict__
            #转换dict字典类型
            json_data = json.dumps(obj=dict_data)
        except Exception as e:
            return e
        return json_data

    @staticmethod
    def json_to_dict(json_data:str):
        """
        @Description: json数据转换成为dict字典数据
        :param json_data json数据
        :return dict_data 返回dict字典数据
        """
        try:
            dict_data = json.loads(s=json_data)
        except Exception as e:
            return e
        return dict_data

    @staticmethod
    def json_to_obj(json_data:str,obj:object):
        """
        @Description: json数据转换成为obj对象
            1.先将json数据转换成为dict字典数据
            2.再将字典数据转换成为obj对象
        :param json_data json数据
        :param obj 需要转换的obj对象
        :return obj 返回的对象
        """
        try:
            dict_data = json.loads(s=json_data)
            obj.__dict__ = dict_data
        except Exception as e:
            return e
        return obj

    @staticmethod
    def dict_to_json_write_file(dict_data:dict,filepath:str,filename:str):
        """
        @Description: 将dict数据转换成为json数据之后再写入json文件
            dump():将dict数据转换成为json数据之后再写入json文件
        :param dict_data 字典数据
        :param filepath 文件路径
        :param filename 文件名字
        """
        try:
            with open (os.path.join(filepath,filename),'w',encoding='utf-8') as f:
                # 会在对应路径下生成一个filename名字的文件,文件内容是dict字典数据转换成的json数据
                json.dump(dict_data,f)
        except Exception as e:
            return e

    @staticmethod
    def json_file_to_dict(filepath:str,filename:str):
        """
        @Description: 读取json文件中的数据,将文件内容转换成为dict字典数据
            load():读取json文件数据,转成dict数据
        :param filepath 文件路径
        :param filename 文件名字
        :return dict_data 返回的字典数据
        """
        try:
            with open(os.path.join(filepath,filename),'r',encoding='utf-8') as f:
                dict_data = json.load(fp=f)
        except Exception as e:
            return e
        return dict_data

如有错误,欢迎评论或私信指出,谢谢!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个小坑货

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值