欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中數(shù)據(jù)類轉(zhuǎn)換為JSON的方法詳解

 更新時(shí)間:2023年09月19日 08:28:16   作者:Python探索牛  
這篇文章主要介紹了Python中數(shù)據(jù)類轉(zhuǎn)換為JSON的方法詳解的相關(guān)資料,需要的朋友可以參考下

dataclass 到 Python 中的 JSON

JavaScript Object Notation或JSON表示使用編程語(yǔ)言中的文本組成的腳本(可執(zhí)行)文件來(lái)存儲(chǔ)和傳輸數(shù)據(jù)。

Python通過(guò)JSON內(nèi)置模塊支持JSON。因此,我們?cè)赑ython腳本中導(dǎo)入JSON包,以利用這一能力。

JSON中使用的引號(hào)字符串包含了鍵值映射中的值。它與Python的字典相類似。

Python原生支持JSON特性,JSON顯示的API類似于標(biāo)準(zhǔn)庫(kù)中marshal和pickle模塊的用戶。

另一方面,dataclass ,創(chuàng)建數(shù)據(jù)傳輸對(duì)象,用于在其中存儲(chǔ)數(shù)據(jù);這些對(duì)象需要適當(dāng)?shù)亩x方法進(jìn)行等價(jià)比較,有時(shí)也用于顯示。

dataclass 是用來(lái)為數(shù)據(jù)傳輸類創(chuàng)建方法和簡(jiǎn)短的語(yǔ)法的。

實(shí)現(xiàn)dataclass ,作為一個(gè)字典

Python 3.7及以后的版本是唯一支持dataclass 裝飾器的版本。它產(chǎn)生一個(gè)對(duì)象,通常被稱為數(shù)據(jù)傳輸對(duì)象,其唯一功能是存儲(chǔ)數(shù)據(jù)。

問(wèn)題是,為這些對(duì)象提供正確的功能,就必須創(chuàng)建平等比較、顯示等方法。

這些方法的開發(fā)必須耗費(fèi)大量的人力物力,而且容易出現(xiàn)錯(cuò)誤。一個(gè)dataclass ,為你產(chǎn)生所有這些方法,給數(shù)據(jù)傳輸類一個(gè)簡(jiǎn)短的語(yǔ)法。

它在序列化方面使用了一個(gè)稍有改變的(在某種程度上更有效)的dataclasses.asdict 。

你正在迭代dataclass 字段,當(dāng)?shù)谝淮螌SON反序列化到dataclass 實(shí)例時(shí),為每個(gè)注釋的類型創(chuàng)建一個(gè)解析器,使這個(gè)過(guò)程在重復(fù)時(shí)更加有效。

為每個(gè)JSONroot 節(jié)點(diǎn)創(chuàng)建一個(gè)dataclass

由于"users" 字段是一個(gè)有"id" 和"name" 的對(duì)象數(shù)組,我們可以看到我們需要構(gòu)建兩個(gè)類:"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]

每個(gè)JSON屬性都應(yīng)該被映射到一個(gè)類型安全的Python屬性。

下面的代碼將每個(gè)JSON節(jié)點(diǎn)和屬性映射到Python類和屬性中。要做到這一點(diǎn),我們?cè)赑ython類中創(chuàng)建一個(gè)static 方法,負(fù)責(zé)將我們的字典映射到你的Python屬性。

示例代碼:

from typing import List
from dataclasses import dataclass, asdict, field
from json import dumps
@dataclass
#Python小白學(xué)習(xí)交流群: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"}

請(qǐng)記住,數(shù)據(jù)傳輸對(duì)象是由dataclasses ,用于在其中存儲(chǔ)數(shù)據(jù)。因此,這些對(duì)象需要正確的方法定義,以便進(jìn)行平等的比較,偶爾也需要進(jìn)行顯示。

數(shù)據(jù)傳輸類的方法和語(yǔ)法是用dataclass 。

到此這篇關(guān)于Python中數(shù)據(jù)類轉(zhuǎn)換為JSON的方法詳解的文章就介紹到這了,更多相關(guān)Python中數(shù)據(jù)類轉(zhuǎn)換為JSON內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換

    python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換

    本文主要介紹了python非標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • pycharm安裝及如何導(dǎo)入numpy

    pycharm安裝及如何導(dǎo)入numpy

    這篇文章主要介紹了pycharm安裝及如何導(dǎo)入numpy,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • pandas學(xué)習(xí)之df.fillna的具體使用

    pandas學(xué)習(xí)之df.fillna的具體使用

    本文主要介紹了pandas學(xué)習(xí)之df.fillna的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Python實(shí)現(xiàn)的建造者模式示例

    Python實(shí)現(xiàn)的建造者模式示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的建造者模式,結(jié)合完整實(shí)例形式分析了構(gòu)造者模式的具體定義與相關(guān)使用操作技巧,需要的朋友可以參考下
    2018-08-08
  • python如何使用requests提交post請(qǐng)求并上傳文件(multipart/form-data)

    python如何使用requests提交post請(qǐng)求并上傳文件(multipart/form-data)

    這篇文章主要給大家介紹了關(guān)于python如何使用requests提交post請(qǐng)求并上傳文件(multipart/form-data)的相關(guān)資料,Python有許多庫(kù)支持,它們可以簡(jiǎn)化HTTP上的數(shù)據(jù)傳輸,requests庫(kù)是最受歡迎的Python包之一,因?yàn)樗诰W(wǎng)絡(luò)刮削中被大量使用,需要的朋友可以參考下
    2023-11-11
  • python3+PyQt5實(shí)現(xiàn)自定義窗口部件Counters

    python3+PyQt5實(shí)現(xiàn)自定義窗口部件Counters

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5實(shí)現(xiàn)自定義窗口部件,Counters自定窗口部件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • Python第三方庫(kù)jieba庫(kù)與中文分詞全面詳解

    Python第三方庫(kù)jieba庫(kù)與中文分詞全面詳解

    jieba庫(kù)是一款優(yōu)秀的Python第三方中文分詞庫(kù),jieba支持三種分詞模式:精確模式、全模式和搜索引擎模式,下面這篇文章主要給大家介紹了關(guān)于Python第三方庫(kù)jieba庫(kù)與中文分詞的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • python web框架 django wsgi原理解析

    python web框架 django wsgi原理解析

    這篇文章主要介紹了python web框架 django wsgi原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值
    2019-08-08
  • Python中的四種交換數(shù)值的方法解析

    Python中的四種交換數(shù)值的方法解析

    這篇文章主要介紹了Python中的四種交換數(shù)值的方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python打開文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法

    Python打開文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法

    今天小編就為大家分享一篇Python打開文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10

最新評(píng)論