摘要:對(duì)象標(biāo)記是一種輕量級(jí)的數(shù)據(jù)交換格式。的數(shù)據(jù)格式其實(shí)就是里面的字典格式,里面可以包含方括號(hào)括起來的數(shù)組,也就是里面的列表。
json and picle
? JSON(JavaScript Object Notation, JS 對(duì)象標(biāo)記) 是一種輕量級(jí)的數(shù)據(jù)交換格式。JSON的數(shù)據(jù)格式其實(shí)就是python里面的字典格式,里面可以包含方括號(hào)括起來的數(shù)組,也就是python里面的列表。
在python中,有專門處理json格式的模塊—— json 和 picle模塊
Json 模塊提供了四個(gè)方法: dumps、dump、loads、load
pickle 模塊也提供了四個(gè)功能:dumps、dump、loads、load
json 總結(jié):
json 序列化操作方法:
dumps:無文件操作
dump:序列化+寫入文件
json反序列話方法:
loads:無文件操作
load:讀文件+反序列化
json模塊序列化的數(shù)據(jù)更通用
picle模塊序列化的數(shù)據(jù)僅Python可用,但功能強(qiáng)大,可以序列化函數(shù)
json模塊可以序列化和反序列化的數(shù)據(jù)類型見Python對(duì)象(obj)與json對(duì)象的對(duì)應(yīng)關(guān)系表
格式化寫入文件利用 indent = 4
dumps and dumpdumps and dump 序列化方法
dumps 只完成了序列化str
dump必須傳文件描述符,將序列化的str保存到文件中
代碼:
>>> import json >>> json.dumps([]) # dumps可以格式化所有的基本數(shù)據(jù)類型為字符串 "[]" >>> json.dumps(1) # 數(shù)字 "1" >>> json.dumps("1") # 字符串 ""1"" >>> dict = {"name":"tom","age":23} >>> json.dumps(dict) # 字典 "{"name": "tom", "age": 23}"
a = {"name":"Tom", "age":23} with open("test.json", "w", encoding="utf-8") as f: f.write(json.dumps(a,indent=4)) # indent 格式化保存字典,默認(rèn)為None,小于0為零個(gè)空格 # json.dump(a,f,indent=4) #和上面的效果一樣loads and load
loads and load 反序列化方法
loads 只完成了反序列化
load 只接受文件描述符,完成了讀取文件和反序列化
代碼:
>>> json.loads("{"name":"Tom", "age":23}") {"age": 23, "name": "Tom"} with open("test.json","r",encoding="utf-8") as f: aa = json.load(f.read()) f.seek(0) bb = json.load(f) print(aa) print(bb)
json and picle 模塊
json模塊和picle模塊都有 dumps、dump、loads、load四種方法,而且用法一樣。
json模塊序列化出來的是通用格式,其它編程語言都認(rèn)識(shí),就是普通的字符串
picle模塊序列化出來的只有python可以認(rèn)識(shí),其他編程語言不認(rèn)識(shí)的,表現(xiàn)為亂碼
picle可以序列化函數(shù),但是其他文件想用該函數(shù),在該文件中需要有該文件的定義(定義和參數(shù)必須相同,內(nèi)容可以不同)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/44603.html
摘要:字段由腳本命令組成的字典,這些命令運(yùn)行在包的各個(gè)生命周期中。在打包過程中,如果遇到字段會(huì)優(yōu)先使用字段表示的路徑下的文件,如果不存在,則用字段表示的作為入口,并按照的規(guī)范打包。其中還分析了文件中字段和字段的不同以及和兩個(gè)字段的區(qū)別。 所有用npm下載的包或者要上傳至npm的模塊都會(huì)有一個(gè)package.json文件,這個(gè)文件總是存在于模塊(或者包)的根目錄下,這個(gè)文件到底是干嘛的,現(xiàn)在就...
摘要:無需手動(dòng)拷貝文件或者創(chuàng)建軟鏈接到目錄,有更優(yōu)雅的解決方案。這是因?yàn)樽R(shí)別協(xié)議的,得知這個(gè)包需要直接從文件系統(tǒng)中獲取,會(huì)自動(dòng)創(chuàng)建軟鏈接到中,完成安裝過程。 nodejs 社區(qū)乃至 Web 前端工程化領(lǐng)域發(fā)展到今天,作為 node 自帶的包管理工具的 npm 已經(jīng)成為每個(gè)前端開發(fā)者必備的工具。但是現(xiàn)實(shí)狀況是,我們很多人對(duì)這個(gè)nodejs基礎(chǔ)設(shè)施的使用和了解還停留在: 會(huì)用 npm insta...
require gitlab mudule對(duì)象化 require最終會(huì)把每個(gè)模塊都轉(zhuǎn)化為對(duì)象 function Module(id, parent) { this.id = id; this.exports = {}; this.parent = parent; updateChildren(parent, this, false); this.filena...
摘要:為何有查閱了的文檔,并沒有找到字段的定義,直到才知道它是中最早就提出的概念。況且目前大部分仍是采用,所以便使用了另一個(gè)字段。所以目前主流的打包工具都是支持的,鑒于其優(yōu)點(diǎn),字段很有可能加入的規(guī)范之中。 引入 最近團(tuán)隊(duì)的一個(gè)同學(xué)在搞 npm library 源碼的調(diào)試插件,因?yàn)閮?nèi)部的一個(gè)組件庫含有大量的邏輯,在某個(gè)項(xiàng)目中不經(jīng)意就出現(xiàn)一個(gè)磨人的 bug,但是組件庫發(fā)布都是打包編譯后的代碼,而...
摘要:起初只是一個(gè)美化文檔的工具,但是事情到年發(fā)生了變化。對(duì)于來說,這意味著有問題的布局。和朝夕相伴的有和最終確定的。他們通過增加前綴的辦法,解決了命名沖突的問題。長(zhǎng)長(zhǎng)的前綴將成為歷史,歡迎來到未來的世界。 譯者注(GeoffZhu): 這篇適合一些使用過預(yù)處理CSS的開發(fā)者,比如less,sass或stylus,如果你都沒用過,那你一定不是個(gè)好司機(jī)。在PostCSS中早就可以使用CSS M...
摘要:在中,要說如果有幾乎會(huì)在每一個(gè)文件都要用到的一個(gè)全局函數(shù)和一個(gè)全局對(duì)象,那應(yīng)該是非和莫屬了。它們是模塊機(jī)制的基石。若仍未返回,則為指定的模塊路徑依次加上,和,判斷是否存在,若存在則返回拼接后的路徑。 在 Node.js 中,要說如果有幾乎會(huì)在每一個(gè)文件都要用到的一個(gè)全局函數(shù)和一個(gè)全局對(duì)象,那應(yīng)該是非 require 和 module.exports 莫屬了。它們是 Node.js 模塊...
閱讀 3854·2021-10-11 10:58
閱讀 2140·2021-09-24 09:47
閱讀 591·2019-08-30 14:19
閱讀 1894·2019-08-30 13:58
閱讀 1526·2019-08-29 15:26
閱讀 707·2019-08-26 13:45
閱讀 2227·2019-08-26 11:53
閱讀 1853·2019-08-26 11:30