<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本篇主要介紹一下 python 中 json的使用 如何把 dict轉成json 、object 轉成json 、以及json轉成物件 等等。。
json是非常常用的一種資料格式,比如在前後端分離的 web開發中,返回給前端 通常都會使用json ,那麼來看看 python 中如何玩轉json
注意: ensure_ascii=False 否則中文亂碼
import json student = { 'name': 'johnny', 'age': 27, 'address': '無錫' } print(json.dumps(student, ensure_ascii=False)) # {"name": "johnny", "age": 27, "address": "無錫"} json
import json json_student = '{"name": "johnny", "age": 27, "address": "無錫"}' print(json.loads(json_student)) # {'name': 'johnny', 'age': 27, 'address': '無錫'} 字典dict
注意:json.dumps() 不支援 直接把 類物件放進去!!! 會報錯 Student is not JSON serializable
import json class Student: def __init__(self, name, age): self.name = name self.age = age student = Student('candy', '30') #錯誤使用!!! print(json.dumps(student)) 報錯!!! TypeError: Object of type Student is not JSON serializable
#正確使用!!! print(json.dumps(student.__dict__))) #可以使用 類物件的 __dict__ 屬性 #{"name": "candy", "age": "30"}
default=指定方法
class Student: def __init__(self, name, age): self.name = name self.age = age @staticmethod def conver2json(self): return { 'name': self.name, 'age': self.age } #通過自己寫一個 conver2json方法 去手動轉化一下 把 類物件轉成json print(json.dumps(student,default=Student.conver2json))
注意:json.loads 預設只會轉成dict,需要自己提供方法 把dict 轉成 類物件
import json class Student: def __init__(self, name, age): self.name = name self.age = age @staticmethod def conver2json(self): return { 'name': self.name, 'age': self.age } @staticmethod def convert2object(dict): return Student(dict['name'],dict['age']) json_student = '{"name": "johnny", "age": 27, "address": "無錫"}' print(json.loads(json_student,object_hook=Student.convert2object)) #<__main__.Student
注意 dump 還是 只能接收 dict ,如果要把 物件寫到json中 需要先把物件 轉成 dict ,可以通過 ——dict——屬性
student = { 'name': 'johnny', 'age': 27, 'address': '無錫' } with open('student.json','w') as f: json.dump(student,f,ensure_ascii=False)
with open('student.json','r') as f: print(json.load(f))
為什麼:轉成json 後 name 是一個陣列呢? 因為 self.name = name, 後面有一個 逗號,。。。 會把這個name當成元組 ,元組轉成 json 就是 陣列!!!
class Student: def __init__(self, name, age): self.name = name, #這裡!!!不能有 逗號。。 self.age = age student = Student('candy', '30') print(json.dumps(student.__dict__)) #猜猜它的列印是什麼 #{"name": ["candy"], "age": "30"}
很簡單 注意一下 class 和 json 的相互轉化即可
參考:https://www.jb51.net/article/256548.htm
到此這篇關於Python中Json使用詳解的文章就介紹到這了,更多相關Python Json使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45