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
如有错误,欢迎评论或私信指出,谢谢!