Python中Json和其他類型相互轉(zhuǎn)換的實現(xiàn)示例
項目中經(jīng)常會用到json格式轉(zhuǎn)為object對象、dict字典格式等。在此做個記錄,方便后續(xù)用到該方法可以快速復(fù)制粘貼。
需要用到json包。
loads():將json數(shù)據(jù)轉(zhuǎn)換成為dict字典數(shù)據(jù)load(): 讀取json文件數(shù)據(jù),轉(zhuǎn)成dict數(shù)據(jù)dumps():將dict數(shù)據(jù)轉(zhuǎn)化成json數(shù)據(jù)dump(): 將dict數(shù)據(jù)轉(zhuǎn)換成為json數(shù)據(jù)之后再寫入json文件
"""
@Description: json和其他類型之間互轉(zhuǎn)
"""
import json
import os
class JsonToOtherType:
"""
@ClassName: JsonToOtherType
@Description: Json數(shù)據(jù)和其他數(shù)據(jù)之間互轉(zhuǎn)
loads():將json數(shù)據(jù)轉(zhuǎn)換成為dict字典數(shù)據(jù)
load():讀取json文件數(shù)據(jù),轉(zhuǎn)成dict數(shù)據(jù)
dumps():將dict數(shù)據(jù)轉(zhuǎn)化成json數(shù)據(jù)
dump():將dict數(shù)據(jù)轉(zhuǎn)換成為json數(shù)據(jù)之后再寫入json文件
"""
def __init__(self):
"""
@Description:
"""
pass
# 設(shè)置為靜態(tài)方法
@staticmethod
def dict_to_json(dict_data:dict):
"""
@Description: dict字典轉(zhuǎn)json數(shù)據(jù)
:param dict_data 字典數(shù)據(jù)
:return json_data 返回json類型數(shù)據(jù)
"""
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: 對象轉(zhuǎn)json數(shù)據(jù)
obj.__dict__:將對象轉(zhuǎn)換成為dict字典類型
json.dumps():再將字典類型轉(zhuǎn)化為json數(shù)據(jù)
:param obj_data 對象數(shù)據(jù)
"""
try:
dict_data = obj_data.__dict__
#轉(zhuǎn)換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數(shù)據(jù)轉(zhuǎn)換成為dict字典數(shù)據(jù)
:param json_data json數(shù)據(jù)
:return dict_data 返回dict字典數(shù)據(jù)
"""
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數(shù)據(jù)轉(zhuǎn)換成為obj對象
1.先將json數(shù)據(jù)轉(zhuǎn)換成為dict字典數(shù)據(jù)
2.再將字典數(shù)據(jù)轉(zhuǎn)換成為obj對象
:param json_data json數(shù)據(jù)
:param obj 需要轉(zhuǎn)換的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數(shù)據(jù)轉(zhuǎn)換成為json數(shù)據(jù)之后再寫入json文件
dump():將dict數(shù)據(jù)轉(zhuǎn)換成為json數(shù)據(jù)之后再寫入json文件
:param dict_data 字典數(shù)據(jù)
:param filepath 文件路徑
:param filename 文件名字
"""
try:
with open (os.path.join(filepath,filename),'w',encoding='utf-8') as f:
# 會在對應(yīng)路徑下生成一個filename名字的文件,文件內(nèi)容是dict字典數(shù)據(jù)轉(zhuǎn)換成的json數(shù)據(jù)
json.dump(dict_data,f)
except Exception as e:
return e
@staticmethod
def json_file_to_dict(filepath:str,filename:str):
"""
@Description: 讀取json文件中的數(shù)據(jù),將文件內(nèi)容轉(zhuǎn)換成為dict字典數(shù)據(jù)
load():讀取json文件數(shù)據(jù),轉(zhuǎn)成dict數(shù)據(jù)
:param filepath 文件路徑
:param filename 文件名字
:return dict_data 返回的字典數(shù)據(jù)
"""
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
到此這篇關(guān)于Python中Json和其他類型相互轉(zhuǎn)換的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)Python Json和其他類型相互轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python中將字典轉(zhuǎn)換成其json字符串
- python將字符串轉(zhuǎn)換成json的方法小結(jié)
- Python對象轉(zhuǎn)換為json的方法步驟
- python 對象和json互相轉(zhuǎn)換方法
- python實現(xiàn)class對象轉(zhuǎn)換成json/字典的方法
- 基于python實現(xiàn)把json數(shù)據(jù)轉(zhuǎn)換成Excel表格
- Python中xml和json格式相互轉(zhuǎn)換操作示例
- Python實現(xiàn)把json格式轉(zhuǎn)換成文本或sql文件
- 使用python把json文件轉(zhuǎn)換為csv文件
- 使用python將mysql數(shù)據(jù)庫的數(shù)據(jù)轉(zhuǎn)換為json數(shù)據(jù)的方法
相關(guān)文章
分享PyCharm最新激活碼(真永久激活方法)不用每月找安裝參數(shù)或最新激活碼了
這篇文章主要介紹了分享PyCharm最新激活碼(真永久激活方法)不用每月找安裝參數(shù)或最新激活碼了一勞永逸,需要的朋友可以參考下2020-12-12
Python循環(huán)語句For?Range用法示例詳解
這篇文章主要為大家介紹了Python循環(huán)語句For?Range用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-09-09
python3操作redis實現(xiàn)List列表實例
本文主要介紹了python3操作redis實現(xiàn)List列表實例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
Pytorch之nn.Upsample()和nn.ConvTranspose2d()用法詳解
nn.Upsample和nn.ConvTranspose2d是PyTorch中用于上采樣的兩種主要方法,nn.Upsample通過不同的插值方法(如nearest、bilinear)執(zhí)行上采樣,沒有可學習的參數(shù),適合快速簡單的尺寸增加,而nn.ConvTranspose2d通過可學習的轉(zhuǎn)置卷積核進行上采樣2024-10-10

