如何將json資料轉換為python資料

2022-09-27 03:15:11 字數 2475 閱讀 2237

json物件是j**ascript object即j**ascript中的物件,是一種通用的格式,格式嚴格,不支援備註。

json文字和json物件的區別:

python中我們一般提到json物件指的是字典

python的字典的格式和json格式,稍有不同:

json 是資料儲存和交換文字資訊的語法

j**ascript物件表示法

用於資料傳遞

json中的資料格式 python中的資料

數字 整型 浮點數

字串 字串

布林值 true false true false

陣列 列表。元祖

物件 字典

null none

常見的json資料格式

]}{} josn資料對應json物件

josn陣列

**如下

import json

age = 10

#dumps把資料轉化為json語法中的數值資料

json_data = json.dumps(age)

print(json_data)

name = '橙子'

json_dta =json.dumps(name)

print(json_data)

person =

json_data =json.dumps(person)

print(json_data)

#在python中可自定義型別 自定義的型別 在json中沒有對應的資料格式

#需要制定編碼規則 通過編碼規則 將自定義型別的資料轉換為json可識別的資料

class person():

def __init__(self,name):

self.name = name

def __str__(self):

return f"person(name=)"

#__repr__通過容器呼叫物件呼叫__repr__

#__str__當列印物件時輸出設定的格式資訊

__repr__ =__str__

p = person("橙子")

print(p)

print(type(p))#

#在json中無對應資料

#儲存person型別的資料-需獲取json可識別資料格式

#方式1

#物件__dict__獲取物件的特徵資訊以字典形式儲存

json_data = json.dumps(p.__dict__)

print(www.cppcns.comjson_data)#

#本質上儲存的是字典

#loads解析為json資料

python_data =json.loads(json_data)

print(python_data)

#對應物件為person物件 需要根據資料資訊建立物件

p = person(python_data["name"])

print(p,type(p))#person(name=橙子)

#方法二儲存時設定編碼規則 存的是指定的編碼規則資料

#獲取的時候要對應有乙個解碼規則 在根據資料解析成物件

#對以上操作封裝

#personencodewww.cppcns.comr編碼

class personencoder(json.jsonencoder):

#重寫方法

#這個方法在dumps時 內部自動呼叫

#子類重寫父類的方法 子類對黨呼叫時 只能呼叫重寫 因為會吧父類方法覆蓋

def default(self, o):

#把規則寫出來

#o 表示要進行json轉換的物件

return o.__dict__

p =person('橙子2')

#cls制定編碼規則

#物件__dict__獲取物件的特徵資訊以字典形式儲存

json_data =json.dumps(p,cls=personencoder)

print(json_data)#

#解析jsondecoder

class persondecoder(json.jsondecoder):

def __init__(self):

#指定解碼規則

#object_hook物件掛鉤-物件解析-接受的是乙個函式

super().__init__(object_hook=self.to_python_obj)

def to_python_obj(self,d):

#d接受的是字典,當前制定的轉化為json物件的資料格式

return person(d['name'])

#解析操作

python_data =json.loads(json_data,cls=persondecoder)

print(python_data)#person(name=橙子2)

本文標題: 如何將json資料轉換為python資料

本文位址:

如何將json轉換為陣列

今天大年初一,首先希望看到這篇文章的所有人2018年順順利利,公升職加薪。話說過年這幾天好無聊啊,每天就是吃吃吃,因為我太宅了,初來廣東也沒有好好出去玩一玩,馬上春節小長假就結束了,還是從床上爬起來擼 比較有意義。新的一年要加油了,要更加努力,活出自己想要的人生!up up up 以上都是沒有意義的...

如何將C nullable int轉換為int

如何將可空int轉換為int 假設我有兩種型別的int,如下所示 int?v1 intv2 將v1的值分配給v2 v2 v1 會導致錯誤。如何將v1轉換為v2?v2 convert.toint32 v1 v2 int v1 檢索物件的值。如果為null,則返回int的預設值,即0。v2 v1.get...

如何將float轉換為string ZZ

可能有好多人,包括c語言老手都不知道如何將float資料轉換為string,我就是這樣,今天查了一下msdn,才知道c提供了 gcvt函式實現這個功能,收穫著實不小,為了方便自己查詢,也為了那些像我這樣的能夠了解該函式的具體用法,我把msdn的原文原封不動抄錄如下 gcvt converts a f...