Python中數據類轉換為JSON的方法詳解
dataclass 到 Python 中的 JSON
JavaScript Object Notation或JSON表示使用編程語言中的文本組成的腳本(可執(zhí)行)文件來存儲和傳輸數據。
Python通過JSON內置模塊支持JSON。因此,我們在Python腳本中導入JSON包,以利用這一能力。
JSON中使用的引號字符串包含了鍵值映射中的值。它與Python的字典相類似。
Python原生支持JSON特性,JSON顯示的API類似于標準庫中marshal和pickle模塊的用戶。
另一方面,dataclass ,創(chuàng)建數據傳輸對象,用于在其中存儲數據;這些對象需要適當的定義方法進行等價比較,有時也用于顯示。
dataclass 是用來為數據傳輸類創(chuàng)建方法和簡短的語法的。
實現dataclass ,作為一個字典
Python 3.7及以后的版本是唯一支持dataclass 裝飾器的版本。它產生一個對象,通常被稱為數據傳輸對象,其唯一功能是存儲數據。
問題是,為這些對象提供正確的功能,就必須創(chuàng)建平等比較、顯示等方法。
這些方法的開發(fā)必須耗費大量的人力物力,而且容易出現錯誤。一個dataclass ,為你產生所有這些方法,給數據傳輸類一個簡短的語法。
它在序列化方面使用了一個稍有改變的(在某種程度上更有效)的dataclasses.asdict 。
你正在迭代dataclass 字段,當第一次將JSON反序列化到dataclass 實例時,為每個注釋的類型創(chuàng)建一個解析器,使這個過程在重復時更加有效。
為每個JSONroot 節(jié)點創(chuàng)建一個dataclass
由于"users" 字段是一個有"id" 和"name" 的對象數組,我們可以看到我們需要構建兩個類:"Test" 和"User" 。
示例代碼:
from dataclasses import dataclass
from typing import List
@dataclass
class User:
id: 1
name: "Kelvin"
@dataclass
class Test:
id: 2
userid:" Jack"
users: List[User]
每個JSON屬性都應該被映射到一個類型安全的Python屬性。
下面的代碼將每個JSON節(jié)點和屬性映射到Python類和屬性中。要做到這一點,我們在Python類中創(chuàng)建一個static 方法,負責將我們的字典映射到你的Python屬性。
示例代碼:
from typing import List
from dataclasses import dataclass, asdict, field
from json import dumps
@dataclass
#Python小白學習交流群:153708845
class Students:
id: 1
name: "stu1"
@property
def __dict__(self):
return asdict(self)
@property
def json(self):
return dumps(self.__dict__)
test_object_1 = Students(id=1, name="Kelvin")
print(test_object_1.json)
輸出:
{"id": 1, "name": "Kelvin"}
請記住,數據傳輸對象是由dataclasses ,用于在其中存儲數據。因此,這些對象需要正確的方法定義,以便進行平等的比較,偶爾也需要進行顯示。
數據傳輸類的方法和語法是用dataclass 。
到此這篇關于Python中數據類轉換為JSON的方法詳解的文章就介紹到這了,更多相關Python中數據類轉換為JSON內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python如何使用requests提交post請求并上傳文件(multipart/form-data)
這篇文章主要給大家介紹了關于python如何使用requests提交post請求并上傳文件(multipart/form-data)的相關資料,Python有許多庫支持,它們可以簡化HTTP上的數據傳輸,requests庫是最受歡迎的Python包之一,因為它在網絡刮削中被大量使用,需要的朋友可以參考下2023-11-11
python3+PyQt5實現自定義窗口部件Counters
這篇文章主要為大家詳細介紹了python3+PyQt5實現自定義窗口部件,Counters自定窗口部件,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04
Python打開文件,將list、numpy數組內容寫入txt文件中的方法
今天小編就為大家分享一篇Python打開文件,將list、numpy數組內容寫入txt文件中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10

