python常用模塊2
阿新 • • 發佈:2018-01-12
處理 進行 class unicode python 硬盤 json pen mps
python常用模塊二
shelve
pickle
json
shelve模塊
- 內部結構其實就是字典類型,存儲的時候指定對應的key,將內容作為value存儲起來,取出也直接通過key取出value.
註意,文件名不需要任何後綴,因為系統默認會將 .db 作為後綴名.
代碼1存儲內容
import shelve def fun1(): pass s = shelve.open(‘test_shelve‘) s[‘dic‘] = {}.fromkeys(list(‘abcdefg‘), 0) s[‘func‘] = fun1 s[‘list‘] = list(range(10)) s.close()
- 代碼2取出內容
s = shelve.open(‘test_shelve‘)
s = shelve.open(‘test_shelve‘)
d = s.get(‘dic‘)
func = s.get(‘func‘)
lst = s.get(‘list‘)
pickle模塊
寫入和讀取時是以字節的形式讀取的,可以指定編碼和解碼格式
寫入文件
import pickle f = open(‘save.pkl‘, ‘wb‘, encoding=‘utf8‘) dic = {}.fromkeys(list(‘qwertasd‘), 1) pickle.dump(dic, f) f.close()
- 讀取文件
import pickle
f = open(‘save.pkl‘, ‘rb‘)
data = pickle.load(f)
print(data, type(data))
json模塊
模塊如下功能:
Json模塊提供了四個功能:dumps、dump、loads、load
pickle模塊提供了四個功能:dumps、dump、loads、load
代碼1:將內容以json序列化形式存入文件
s = [‘我‘, ‘你‘, ‘它‘, ‘asdas‘]
f = open(‘save.json‘, ‘w‘)
json.dump(s, f)
f.close()
- 代碼2:使用json模塊讀取json格式內容
f1 = open(‘save.json‘, ‘r‘, encoding=‘utf8‘)
result = json.load(f1)
# result = json.loads(f1.read())
- 將字符串json序列化處理,存入文件的都是unicode格式的編碼
data = json.dumps(s)
print(data, type(data))
# ["\u6211", "\u4f60", "\u5b83"] <class ‘str‘>
result = json.loads(data) # 直接反序列json序列化數據
print(result)
# [‘我‘, ‘你‘, ‘它‘]
json、pickle、shelve三個區別
主要區別有幾下幾點:
- pickle和shelve模塊支持python所有的數據類型,包括函數;但是json只是支持dic/list/tuple/str/int等數據類型;
- pikle和shelve只能在python中使用,但是json是跨語言的;
json、pickle、shelve三個模塊的作用
- 用於字符串和python或其他編程語言數據類型間進行轉換,不僅可以保存數據到硬盤,還可以保存它的數據類型
python常用模塊2