json 和 pickle
json和pickle是用於字串序列化和反序列化的過程,我們在儲存和使用的時候,經常把列表存入檔案,讀取的時候我們還想以列表的形式讀取。就需要使用json和pickle。json是支援所有的介面,pickle是python自己內建的介面。
用於序列化的兩個模組
(1)json,用於字串和python資料型別間進行轉換
(2)pickle,用於python特有的型別和python的資料型別間進行轉換
json模組提供了四個功能:dumps、dump、loads、load
pickle模組提供了四個功能:dumps、dump、loads、load
json模組的方法:
(1)dump()
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):
"""serialize ``obj`` as a json formatted stream to ``fp`` (a
``.write()``-supporting file-like object)
dump(obj,fp)是向檔案中寫入資訊,dump()是首先將obj轉化為字串格式,檔案識別的內容,然後寫入檔案中。
(2)dumps(obj)
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):
"""serialize ``obj`` to a json formatted ``str``.
dumps()是把其他格式轉化為檔案可識別的字元格式,因為我們知道,字串才能寫入字典當中,列表,字典,元組是不能直接寫入檔案中。
(3)load()
def load(fp, cls=none, object_hook=none, parse_float=none,
parse_int=none, parse_constant=none, object_pairs_hook=none, **kw):
"""deserialize ``fp`` (a ``.read()``-supporting file-like object containing
a json document) to a python object.
load()是從檔案中讀取json.dump()存入的檔案資訊,並把字串進行轉換,從檔案中讀取資訊並進行轉換。
(4)loads()
def loads(s, encoding=none, cls=none, object_hook=none, parse_float=none,
parse_int=none, parse_constant=none, object_pairs_hook=none, **kw):
"""deserialize ``s`` (a ``str`` instance containing a json
document) to a python object.
loads()是把字串轉化為原本的格式,比如dumps(),dump()存進去的字串,反解成原來的格式。
pickle模組和json功能是一樣的,只不過pickle()是python中內建的模組。
Python 之路 Day5 常用模組學習
模組介紹 time datetime模組 random ossys shutil json picle shelve xml處理 yaml處理 configparser hashlib subprocess logging模組 re正規表示式 模組,用一砣 實現了某個功能的 集合。類似於函式式程式設...
python學習,day5 內建模組(複製和壓縮)
複製用的shutil模組 import shutil f1 open 本節筆記.txt encoding utf 8 f2 open 筆記2.txt w encoding utf 8 shutil.copyfileobj f1,f2 複製內容,需提前開啟檔名 shutil.copyfile 筆記2....
day5 迭代和函式用法
今日小結 今天學習了 迭代 重點關注 迭代協議 next 迭代工具 包括迭代器物件和可迭代物件,類似file就是已經實現了的迭代器物件,但像list是可迭代物件,本身不能直接使用迭代協議的 next 函式,需要iter 轉換,原因在於list本身可簡單可複雜,若有很多list巢狀的複雜情況下,不好直...