色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python之對(duì)象和json互相轉(zhuǎn)換

冬至配餃子 ? 來(lái)源:繆斯之子 ? 作者:肖新苗 ? 2022-08-23 10:42 ? 次閱讀

1.轉(zhuǎn)換:對(duì)象與json

import json
from typing import Dict


class Person:
def __init__(self, name: str = 'xiaomiao'):
self.name = name

@staticmethod
def to_dict(obj: 'Person'):
return obj.__dict__

@classmethod
def from_dict(cls, dict: Dict)->'Person':
p = cls()
p.__dict__ = dict
return p


class Female(Person):
def __init__(self, name: str = 'xiao', sex: int = 1):
self.name = name
self.sex = sex


def test_1():
p = Person('xiao')
json1 = json.dumps(p, default=Person.to_dict)
assert '{"name": "xiao"}' == json1, 'json dump error'
p2 = json.loads(json1, object_hook=Person.from_dict)
assert p.__dict__ == p2.__dict__, 'json loads error'


def test_2():
p_list = [Person('xiao1'), Person('xiao2')]
json1 = json.dumps(p_list, default=Person.to_dict)
assert '[{"name": "xiao1"}, {"name": "xiao2"}]' == json1, 'json dump 2 error'
p2_list = json.loads(json1, object_hook=Person.from_dict)
assert p_list[0].__dict__ == p2_list[0].__dict__ and p_list[1].__dict__ == p2_list[1].__dict__, 'json loads 2 error'


def test_3():
p = Female(name='xiao1', sex=1)
json1 = json.dumps(p, default=Female.to_dict)
assert '{"name": "xiao1", "sex": 1}' == json1, 'json dump error'
p2 = json.loads(json1, object_hook=Female.from_dict)
assert p.__dict__ == p2.__dict__, 'json loads error'

2.轉(zhuǎn)換:對(duì)象集合與json列表

import importlib
import json
from typing import Dict


class Person1:
def __init__(self, name: str = 'xiao'):
self.name = name


class Person:
def __init__(self, name: str = 'good'):
self.name = name
self.p1:Person1 = None

@staticmethod
def to_dict_pure(obj: 'Person'):
return obj.__dict__

@staticmethod
def to_dict(obj: 'Person'):
obj.__dict__.update(
{'fullname': f'{obj.__module__}.{obj.__class__.__name__}'})
return obj.__dict__

@staticmethod
def from_dict(dict: Dict)->'Person':
module, classname = dict['fullname'].rsplit('.', 1)
p = getattr(importlib.import_module(module), classname)()
p.__dict__ = dict
return p


def test_1():
p = Person('xiao')
p.p1 = Person1('xinmiao')
json1 = json.dumps(p, default=Person.to_dict)
assert '{"name": "xiao", "p1": {"name": "xinmiao", "fullname": "test_obj_conv_2.Person1"}, ' +\
'"fullname": "test_obj_conv_2.Person"}' == json1, 'json dumps error'
p2 = json.loads(json1, object_hook=Person.from_dict)
assert p.__dict__['name'] == p2.__dict__['name'] \
and p.__dict__['p1'].__dict__ == p2.__dict__['p1'].__dict__, 'json loads error'


def test_2():
p1 = Person('xiao1')
p1.p1 = Person1('xin1')
p2 = Person('xiao2')
p2.p1 = Person1('xin2')
p_list = [p1, p2]
json1 = json.dumps(p_list, default=Person.to_dict)
assert '[{"name": "xiao1", "p1": {"name": "xin1", "fullname": "test_obj_conv_2.Person1"},' +\
' "fullname": "test_obj_conv_2.Person"}, {"name": "xiao2", "p1": {"name": "xin2", ' +\
'"fullname": "test_obj_conv_2.Person1"}, "fullname": "test_obj_conv_2.Person"}]', 'json dumps 2 error'
p2_list = json.loads(json1, object_hook=Person.from_dict)
assert p_list[0].__dict__['name'] == p2_list[0].__dict__['name'] \
and p_list[0].__dict__['p1'].__dict__ == p2_list[0].__dict__['p1'].__dict__ \
and p_list[1].__dict__['name'] == p2_list[1].__dict__['name'] \
and p_list[1].__dict__['p1'].__dict__ == p2_list[1].__dict__['p1'].__dict



審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4798

    瀏覽量

    84799
  • ASSERT
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    7256
  • JSON
    +關(guān)注

    關(guān)注

    0

    文章

    119

    瀏覽量

    6980
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    think-cell——使用JSON數(shù)據(jù)實(shí)現(xiàn)自動(dòng)化(一)

    您可以使用 JSON 中的數(shù)據(jù)來(lái)復(fù)制最初作為模板創(chuàng)建的圖表,并為其提供新的數(shù)據(jù)表。您可以控制使用特定模板構(gòu)建新演示文稿的順序。模板也可以多次使用。 PowerPoint 模板和 JSON 數(shù)據(jù)都可以
    的頭像 發(fā)表于 01-02 13:37 ?61次閱讀
    think-cell——使用<b class='flag-5'>JSON</b>數(shù)據(jù)實(shí)現(xiàn)自動(dòng)化(一)

    實(shí)例篇 4G模組軟件json數(shù)據(jù)處理!

    今天我會(huì)把4G模組軟件的json數(shù)據(jù)處理整理成文,以低功耗模組Air780E為例,一一展示出來(lái):
    的頭像 發(fā)表于 11-12 12:17 ?221次閱讀

    Python庫(kù)解析:通過(guò)庫(kù)實(shí)現(xiàn)代理請(qǐng)求與數(shù)據(jù)抓取

    Python中,有多個(gè)庫(kù)可以幫助你實(shí)現(xiàn)代理請(qǐng)求和數(shù)據(jù)抓取。這些庫(kù)提供了豐富的功能和靈活的API,使得你可以輕松地發(fā)送HTTP請(qǐng)求、處理響應(yīng)、解析HTML/XML/JSON數(shù)據(jù),以及進(jìn)行復(fù)雜的網(wǎng)絡(luò)操作。
    的頭像 發(fā)表于 10-24 07:54 ?188次閱讀

    JSON協(xié)議是什么,物聯(lián)網(wǎng)中的RTU中如何使用JSON協(xié)議和服務(wù)器交互

    一 概述 1.1 什么是 JSON JSON是JavaScript Object Notation的簡(jiǎn)稱(chēng),中文含義為“JavaScript 對(duì)象表示法”,它是一種數(shù)據(jù)交換的文本格式,而不是一種編程
    的頭像 發(fā)表于 09-25 16:14 ?885次閱讀
    <b class='flag-5'>JSON</b>協(xié)議是什么,物聯(lián)網(wǎng)中的RTU中如何使用<b class='flag-5'>JSON</b>協(xié)議和服務(wù)器交互

    如何利用python和API查詢(xún)IP地址?

    Python中,直接查詢(xún)IP地址的地理位置或詳細(xì)信息(如所屬?lài)?guó)家、城市等)通常需要依賴(lài)外部API服務(wù),因?yàn)?b class='flag-5'>Python標(biāo)準(zhǔn)庫(kù)本身不提供直接查詢(xún)IP地址地理位置的功能。以下是一個(gè)使用requests
    發(fā)表于 08-28 11:55

    pytorch和python的關(guān)系是什么

    在當(dāng)今的人工智能領(lǐng)域,Python已經(jīng)成為了最受歡迎的編程語(yǔ)言之一。Python的易學(xué)易用、豐富的庫(kù)和框架以及強(qiáng)大的社區(qū)支持,使其成為了數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)和深度學(xué)習(xí)等領(lǐng)域的首選語(yǔ)言。而在深度學(xué)習(xí)領(lǐng)域
    的頭像 發(fā)表于 08-01 15:27 ?2055次閱讀

    Python建模算法與應(yīng)用

    Python作為一種功能強(qiáng)大、免費(fèi)、開(kāi)源且面向對(duì)象的編程語(yǔ)言,在科學(xué)計(jì)算、數(shù)學(xué)建模、數(shù)據(jù)分析等領(lǐng)域展現(xiàn)出了卓越的性能。其簡(jiǎn)潔的語(yǔ)法、對(duì)動(dòng)態(tài)輸入的支持以及解釋性語(yǔ)言的本質(zhì),使得Python在多個(gè)平臺(tái)
    的頭像 發(fā)表于 07-24 10:41 ?577次閱讀

    python訓(xùn)練出的模型怎么調(diào)用

    使用pickle模塊 pickle 是Python的一個(gè)內(nèi)置模塊,用于序列化和反序列化Python對(duì)象結(jié)構(gòu)。使用 pickle 可以方便地保存和加載模型。 import pickle # 保存模型
    的頭像 發(fā)表于 07-11 10:15 ?2039次閱讀

    神經(jīng)網(wǎng)絡(luò)的基本原理及Python編程實(shí)現(xiàn)

    神經(jīng)網(wǎng)絡(luò)作為深度學(xué)習(xí)算法的基本構(gòu)建模塊,模擬了人腦的行為,通過(guò)互相連接的節(jié)點(diǎn)(也稱(chēng)為“神經(jīng)元”)實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的處理、模式識(shí)別和結(jié)果預(yù)測(cè)等功能。本文將深入探討神經(jīng)網(wǎng)絡(luò)的基本原理,并結(jié)合Python編程實(shí)現(xiàn)進(jìn)行說(shuō)明。
    的頭像 發(fā)表于 07-03 16:11 ?689次閱讀

    Labview與Halcon圖片Image互相轉(zhuǎn)換

    Labview 與Halcon 聯(lián)合開(kāi)發(fā) 分享一下Labview 與Halcon Image格式相互轉(zhuǎn)換的程序, 整理了一個(gè)VI,LV_to _Halconxl.vi,可以直接調(diào)用,相互轉(zhuǎn)換兩種格式
    發(fā)表于 06-27 23:00

    微軟Windows 10/11系統(tǒng)新增PowerToys AI高級(jí)粘貼功能

    以C++到Python的轉(zhuǎn)化為例,只需輕松復(fù)制一段C++代碼,再按下特定快捷鍵即可完成自動(dòng)化轉(zhuǎn)換。此外,微軟還在Build 2024開(kāi)發(fā)者大會(huì)上展示了如何利用PowerToys將XML快速轉(zhuǎn)換
    的頭像 發(fā)表于 05-28 10:39 ?713次閱讀

    ?PLC設(shè)備通過(guò)智能網(wǎng)關(guān)采用HTTP協(xié)議JSON文件對(duì)接MES、ERP等系統(tǒng)平臺(tái)

    ,字符可自由修改,舉例只是為了描述各種JSON文件的結(jié)構(gòu)實(shí)現(xiàn)。MQTT協(xié)議的發(fā)布/訂閱也是同樣的對(duì)應(yīng)方式。具體如下: 多個(gè)Key:Value的同級(jí)組合: 包含子對(duì)象: 增加時(shí)間戳,多種格式可以
    發(fā)表于 05-13 12:04

    python解析netflow數(shù)據(jù)到csv的流程詳解

    本文主要講解了linux下通過(guò)tcpdump抓取netflow數(shù)據(jù)包,并將其導(dǎo)入到wireshark進(jìn)行解析,然后通過(guò)wireshark導(dǎo)出數(shù)據(jù)為json文件,再通過(guò)python腳本將其解析為csv文件以便做數(shù)據(jù)分析。
    的頭像 發(fā)表于 05-01 11:18 ?687次閱讀
    <b class='flag-5'>python</b>解析netflow數(shù)據(jù)到csv的流程詳解

    python中open函數(shù)的用法詳解

    python中open函數(shù)的用法詳解 Python中的open()函數(shù)用于打開(kāi)文件。它接受文件名和模式作為參數(shù),并返回一個(gè)文件對(duì)象。文件對(duì)象可用于讀取、寫(xiě)入和管理文件。 open()函
    的頭像 發(fā)表于 01-30 15:31 ?2159次閱讀

    ?PLC從HTTP服務(wù)端獲取JSON文件,解析數(shù)據(jù)到寄存器

    智能網(wǎng)關(guān)IGT-DSER集成了多種PLC協(xié)議,方便實(shí)現(xiàn)各種PLC與HTTP服務(wù)端之間通訊。通過(guò)網(wǎng)關(guān)的參數(shù)配置軟件綁定JSON文件的字段與PLC寄存器地址,配置URL,即可采用POST命令,將JSON
    發(fā)表于 01-24 09:47
    主站蜘蛛池模板: 成人免费视频网站www| 蜜柚影院在线观看免费高清中文| 国产在线精品亚洲第1页| 久久99亚洲AV无码四区碰碰| 老师扒开尿口男生摸尿口| 日本经典片免费看| 国产欧美一区二区精品仙草咪 | 夜色视频社区| 91久久99久91天天拍拍| 大屁股国产白浆一二区| 国产午夜伦鲁鲁| 蜜桃婷婷狠狠久久综合9色| 跳蛋按摩棒玉势PLAY高H| 最近中文字幕2019免费版| 广播电台在线收听| 看黄色片子| 我的年轻漂亮继坶三级| 24小时日本在线观看片| 2019在秋霞理论| 国产久青青青青在线观看| 男插女高潮一区二区| 亚洲zooz人禽交xxxx| 扒开女人下面使劲桶动态图| 高H短篇辣肉纯肉| 久久综合九色| 亚洲444777KKK在线观看| qvod播放电影| 久久久97丨国产人妻熟女| 我强进了老师身体在线观看| 99久久无码一区人妻A片竹菊 | 高挑人妻无奈张开腿| 兰桂坊人成社区亚洲精品 | 欧美成人亚洲高清在线观看| 亚洲欧美高清在线| 囯产精品一品二区三区| 男男被强bl高h文| 一本之道高清视频在线观看 | jizz黑丝| 老师的脚奴| 亚洲qvod图片区电影| 村上里沙快播|