国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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)注

    57

    文章

    4876

    瀏覽量

    90024
  • ASSERT
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    7660
  • JSON
    +關(guān)注

    關(guān)注

    0

    文章

    128

    瀏覽量

    7780
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    JSON:簡(jiǎn)潔代碼高效搞定序列化與反序列化

    面對(duì)頻繁的數(shù)據(jù)交互需求,用最簡(jiǎn)方式實(shí)現(xiàn)JSON序列化與反序列化已成為開(kāi)發(fā)者必備技能,借助主流庫(kù),輕松實(shí)現(xiàn)零負(fù)擔(dān)數(shù)據(jù)轉(zhuǎn)換JSON(JavaScriptObjectNotation)是一種輕量級(jí)
    的頭像 發(fā)表于 02-25 19:04 ?88次閱讀
    <b class='flag-5'>JSON</b>:簡(jiǎn)潔代碼高效搞定序列化與反序列化

    極簡(jiǎn)代碼,搞定JSON序列化與反序列化

    LuatOS開(kāi)發(fā)中,使用以下兩個(gè)函數(shù)高效處理JSON數(shù)據(jù)。 1.1 ?兩個(gè)關(guān)鍵函數(shù) 1)json.encode(obj,t) 功能是將Lua對(duì)象序列化為
    的頭像 發(fā)表于 02-23 21:46 ?325次閱讀
    極簡(jiǎn)代碼,搞定<b class='flag-5'>JSON</b>序列化與反序列化

    cJSON庫(kù)是什么?

    的文本格式,但是也使用了類似于C語(yǔ)言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數(shù)據(jù)交換語(yǔ)言。 cJSON
    發(fā)表于 01-29 07:13

    詳解DBC的Signal與JSON文本結(jié)合

    為了優(yōu)化CAN數(shù)據(jù)發(fā)送與接收的操作流程,更改以前手動(dòng)輸入狀態(tài)對(duì)應(yīng)數(shù)據(jù)的模式,采用下拉列表選擇內(nèi)容,但這需要用到超出DBC原有承載能力的信息。因此,將JSON與其結(jié)合,采用JSON格式文本寫(xiě)入Signal的Comment屬性,將Comment屬性的字符串通過(guò)
    的頭像 發(fā)表于 01-06 10:57 ?296次閱讀
    詳解DBC的Signal與<b class='flag-5'>JSON</b>文本結(jié)合

    沒(méi)有專利的opencv-python 版本

    所有 官方發(fā)布的 opencv-python 核心版本(無(wú) contrib 擴(kuò)展)都無(wú)專利風(fēng)險(xiǎn)——專利問(wèn)題僅存在于 opencv-contrib-python 擴(kuò)展模塊中的少數(shù)算法(如早期 SIFT
    發(fā)表于 12-13 12:37

    解析淘寶拍立淘按圖搜索API接口與JSON數(shù)據(jù)示例參考

    應(yīng)用。 獲取API權(quán)限和密鑰(App Key、App Secret)。 使用Python調(diào)用API的示例代碼。 3. JSON數(shù)據(jù)示例與解析 返回的JSON數(shù)據(jù)結(jié)構(gòu)解析。 如何提取關(guān)鍵信息(如商品ID、名稱、價(jià)格、圖片等)。 4
    的頭像 發(fā)表于 11-11 13:19 ?331次閱讀

    harmony-utilsJSONUtil,JSON工具類

    harmony-utilsJSONUtil,JSON工具類 harmony-utils 簡(jiǎn)介與說(shuō)明 harmony-utils 一款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多實(shí)用工具類
    的頭像 發(fā)表于 07-03 18:21 ?463次閱讀

    harmony-utilsTempUtil,溫度轉(zhuǎn)換工具類

    harmony-utilsTempUtil,溫度轉(zhuǎn)換工具類 harmony-utils 簡(jiǎn)介與說(shuō)明 [harmony-utils] 一款功能豐富且極易上手的HarmonyOS工具庫(kù),借助眾多
    的頭像 發(fā)表于 06-26 00:50 ?444次閱讀

    迅為RK3568開(kāi)發(fā)板編寫(xiě)bundle.json文件

    bundle.json 文件內(nèi)容如下所示: 下面是對(duì)各個(gè)字段的解釋: name: \"@ohos/demos\" - 這是組件或項(xiàng)目的名稱,這里表示它屬于 OHOS
    發(fā)表于 06-05 15:38

    不用聯(lián)網(wǎng)不用編程,PLC通過(guò)智能網(wǎng)關(guān)快速實(shí)現(xiàn)HTTP協(xié)議JSON格式與MES等系統(tǒng)平臺(tái)雙向數(shù)據(jù)通訊

    智能網(wǎng)關(guān)IGT-DSER支持POST/GET/PUT等多種方法,可同時(shí)作為HTTP協(xié)議的客戶端和服務(wù)端。作為客戶端通訊時(shí)將JSON文件提交給HTTP的服務(wù)端, 如果服務(wù)端有返回的JSON,網(wǎng)關(guān)
    的頭像 發(fā)表于 05-13 14:40 ?1194次閱讀
    不用聯(lián)網(wǎng)不用編程,PLC通過(guò)智能網(wǎng)關(guān)快速實(shí)現(xiàn)HTTP協(xié)議<b class='flag-5'>JSON</b>格式與MES等系統(tǒng)平臺(tái)雙向數(shù)據(jù)通訊

    將預(yù)先訓(xùn)練的固態(tài)盤(pán)MobileNetV2模型轉(zhuǎn)換為IR,在運(yùn)行替換器“REPLACEMENT_ID”時(shí)發(fā)生異常錯(cuò)誤怎么解決?

    將預(yù)先訓(xùn)練的固態(tài)盤(pán) MobileNetV2 模型轉(zhuǎn)換為 IR,但無(wú)法轉(zhuǎn)換經(jīng)過(guò)自定義訓(xùn)練的模型。 導(dǎo)出的凍結(jié)模型圖:python object_detection
    發(fā)表于 03-07 08:01

    為什么無(wú)法使用圖像文件夾執(zhí)行對(duì)象檢測(cè)Python演示?

    使用自定義固態(tài)盤(pán) Mobilenet 執(zhí)行對(duì)象檢測(cè),并使用自定義腳本在文件夾中包含多個(gè)圖像。 每張圖像上的檢測(cè)結(jié)果都有相同的邊框位置。
    發(fā)表于 03-07 07:51

    如何使用命令將更快的R ACCENT-10.onnx模型轉(zhuǎn)換為IR?

    使用命令將更快的R ACCENT-10.onnx 模型轉(zhuǎn)換為 IR:python ./mo_onnx.py --input_model FasterRCNN-10.onnx
    發(fā)表于 03-07 07:43

    無(wú)法轉(zhuǎn)換TF OD API掩碼RPGA模型怎么辦?

    無(wú)法轉(zhuǎn)換重新訓(xùn)練的 TF OD API 掩碼 RPGA 模型,該模型使用以下命令在 GPU 上工作: mo > --saved_model_dir
    發(fā)表于 03-06 06:44

    使用Yolo-v3-TF運(yùn)行OpenVINO?對(duì)象檢測(cè)Python演示時(shí)的結(jié)果不準(zhǔn)確的原因?

    通過(guò)模型下載器下載了 yolo-v3-tf: ./downloader.py --name yolo-v3-tf 通過(guò)模型 優(yōu)化器轉(zhuǎn)換模型: python3 ./model_optimizer
    發(fā)表于 03-06 06:31