<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
推薦使用參考網站: json
在python中,json模組可以實現json資料的序列化和反序列化
def dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw):
def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw):
4.把obj序列化成一個json格式的字串,並返回該字串支援的python內建可進行json序列化的型別有(str, int, float, bool, None,list,tuple,dict)如果無法序列化的型別,會丟擲TypeError
2.其他引數同上解釋
def load(fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
def loads(s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):
6.parse_constant 如果定義了,那麼在碰到-Infinity, Infinity, NaN.這些的時候會被呼叫;如果遇到無效的json符號,會丟擲異常
import json if __name__ == '__main__': # 測試格式化非json格式資料 print('-------------測試格式化非json格式資料----------------') a = json.dumps(2.0) print(a, type(a)) a = json.dumps(tuple()) print(a, type(a)) a = json.dumps([]) print(a, type(a)) # 測試格式化json格式資料 print('-------------測試格式化json格式資料----------------') j = {'a': 1, 'b': 6} a = json.dumps(j) print(a, type(a)) # 測試skipkeys引數 print('-------------測試skipkeys引數----------------') j = {'a': 1, tuple(): 6} a = json.dumps(j, skipkeys=True) print(a, type(a)) # 測試indent引數 print('-------------測試indent預設引數----------------') j = {'a': 1, 'b': 234} a = json.dumps(j) print(a, type(a)) print('-------------測試indent=0引數----------------') a = json.dumps(j, indent=0) print(a, type(a)) print('-------------測試indent=2引數----------------') a = json.dumps(j, indent=2) print(a, type(a)) print('-------------測試separators引數----------------') a = json.dumps(j, separators=('[', ']')) print(a, type(a))
import json if __name__ == '__main__': # 測試格式化非json格式資料 fp = open('./json_dump_data', mode='w') print('-------------測試格式化非json格式資料----------------') a = json.dump(2.0, fp) fp.write('n') a = json.dump(tuple(), fp) a = json.dump([], fp) fp.write('n') # 測試格式化json格式資料 j = {'a': 1, 'b': 6} a = json.dump(j, fp)
cat json_dump_data:
1和2中很多引數都是相同的,這裡就不再詳述3.load()
import json if __name__ == '__main__': j = open('./json_data', mode='r') # 測試預設引數 a = json.load(j) print('-------------測試預設引數----------------') print(a) # 測試object_hook引數 j = open('./json_data', mode='r') a = json.load(j, object_hook=lambda x: x.get('b')) print('-------------測試object_hook引數----------------') print(a) # 測試object_pairs_hook引數 j = open('./json_data', mode='r') loads = json.load(j, object_pairs_hook=lambda x: print(type(x), type(x[2]))) print('-------------測試object_pairs_hook引數----------------') print(loads) # 測試parse_constant引數 j = open('./json_data', mode='r') loads = json.load(j, parse_constant=lambda x: 'not notification') print('-------------測試parse_constant引數----------------') print(loads) # 測試parse_int引數 j = open('./json_data', mode='r') loads = json.load(j, parse_int=lambda x: 'cutomer int') print('-------------測試parse_int引數----------------') print(loads) # 測試parse_float引數 j = open('./json_data', mode='r') loads = json.load(j, parse_float=lambda x: 'cutomer float') print('-------------測試parse_float引數----------------') print(loads)
注:
因為load方法的底層是呼叫了fp.read(),所以每一次重新呼叫load的時候都需要重新開啟檔案控制程式碼。不然就會導致在第二次呼叫load方法的時候,就會因為fp.read()返回的是none就導致異常
import json if __name__ == '__main__': j = '{"a":1,"b":2.0,"c":Infinity}' # 測試預設引數 a = json.loads(j) print('-------------測試預設引數----------------') print(a) # 測試object_hook引數 a = json.loads(j, object_hook=lambda x: x.get('b')) print('-------------測試object_hook引數----------------') print(a) # 測試object_pairs_hook引數 loads = json.loads(j, object_pairs_hook=lambda x: print(type(x), type(x[2]))) print('-------------測試object_pairs_hook引數----------------') print(loads) # 測試parse_constant引數 loads = json.loads(j, parse_constant=lambda x: 'not notification') print('-------------測試parse_constant引數----------------') print(loads) # 測試parse_int引數 loads = json.loads(j, parse_int=lambda x: 'cutomer int') print('-------------測試parse_int引數----------------') print(loads) # 測試parse_float引數 loads = json.loads(j, parse_float=lambda x: 'cutomer float') print('-------------測試parse_float引數----------------') print(loads)
到此這篇關於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