python 序列化pickle&json模組
目錄
pickle模組
以下資料來源於:
https://blog.csdn.net/weixin_41644993/article/details/96484489
https://book.apeland.cn/details/67/
pickle.dump(obj, file, [,protocol])
- 接受一個檔案控制程式碼和一個資料物件作為引數,把資料物件obj以特定的格式儲存到給定的檔案file裡
引數:
- obj:想要序列化的obj物件。
- file:檔名稱。
- protocol:序列化使用的協議。如果該項省略,則預設為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本。
使用
import pickle
data = {'k1': 123, 'k2': 'Hello'}
# pickle.dump 將資料通過特殊的形式轉換位只有python語言認識的字串,並寫入檔案
with open('result.pk', "wb") as fp:
pickle.dump(data, fp)
pickle.load(file)
- 將file中的物件序列化讀出。
引數:
- file:檔名稱。
使用
import pickle
data = {'k1': 123, 'k2': 'Hello'}
# pickle.dump 將資料通過特殊的形式轉換位只有python語言認識的字串,並寫入檔案
with open('result.pk', "wb") as fp:
pickle.dump(data, fp)
# pickle.load 從檔案里載入
f = open("result.pk", "rb")
d = pickle.load(f)
print(d) # {'k1': 123, 'k2': 'Hello'}
pickle.dumps(obj[, protocol])
- 將obj物件序列化為string形式,而不是存入檔案中。
引數:
- obj:想要序列化的obj物件。
- protocal:如果該項省略,則預設為0。如果為負值或HIGHEST_PROTOCOL,則使用最高的協議版本。
使用
import pickle
data = {'k1': 123, 'k2': 'Hello'}
# pickle.dumps 將資料通過特殊的形式轉換位只有python語言認識的字串
p_str = pickle.dumps(data) # 注意dumps會把資料變成bytes格式
print(p_str)
# 輸出:b'\x80\x03}q\x00(X\x02\x00\x00\x00k1q\x01K{X\x02\x00\x00\x00k2q\x02X\x05\x00\x00\x00Helloq\x03u.'
pickle.loads(string)
- 從string中讀出序列化前的obj物件。
使用
import pickle
# loads 將pickle資料轉換為python的資料結構
ls = ['12', '34', '56']
str = pickle.dumps(ls)
mes = pickle.loads(str)
print(mes) # ['12', '34', '56']
JSON 模組
- Json模組也提供了四個功能:dumps、dump、loads、load,用法跟pickle一致
import json
data = {'k1': 123, 'k2': 'Hello'}
# json.dumps 將資料通過特殊的形式轉換位所有程式語言都認識的字串
j_str = json.dumps(data) # 注意json dumps生成的是字串,不是bytes
print(j_str)
# dump入檔案
with open('result.json', 'w') as fp:
json.dump(data, fp)
# 從檔案裡load
with open("result.json") as f:
d = json.load(f)
print(d)
dumps用法
- json.dumps 用於將 Python 物件編碼成 JSON 字串。
語法
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding=“utf-8”, default=None, sort_keys=False, **kw)
import json
data = [{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}]
data2 = json.dumps(data)
print(data2) # str型別 輸出:[{"a": 1, "b": 2, "c": 3, "d": 4, "e": 5}]
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps({'a': 'Runoob', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)
"""
輸出:
{
"a": "Runoob",
"b": 7
}
"""
python 原始型別向 json 型別的轉化對照表:
Python | JSON |
---|---|
dict | object |
list, tuple | array |
str, unicode | string |
int, long, float | number |
True | true |
False | false |
None | null |
json.loads
- json.loads 用於解碼 JSON 資料。該函式返回 Python 欄位的資料型別。
語法
json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
使用
import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}'
text = json.loads(jsonData)
print(text) # 輸出一個字典:{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
json 型別轉換到 python 的型別對照表:
JSON | Python |
---|---|
object | dict |
array | list |
string | unicode |
number (int) | int, long |
number (real) | float |
true | True |
false | False |
null | None |
相關文章
- Python常用模組(random隨機模組&json序列化模組)Pythonrandom隨機JSON
- 序列化模組,隨機數模組,os模組,sys模組,hashlib模組隨機
- 序列化模組,subprocess模組,re模組,常用正則
- python 模組:itsdangerous 模組Python
- Python模組:time模組Python
- 序列化和反序列化pickle和json 模組JSON
- Python模組之urllib模組Python
- python模組之collections模組Python
- Python 模組Python
- [Python模組學習] glob模組Python
- Python中模組是什麼?Python有哪些模組?Python
- Python Execl模組Python
- Python mongoHelper模組PythonGo
- Python——JSON 模組PythonJSON
- [Python] pipe模組Python
- Python - 模組包Python
- python——typing模組Python
- Python functools 模組Python
- Python pymsql模組PythonSQL
- Python:requests模組Python
- Python模組reloadPython
- python之模組Python
- 15 Python模組Python
- python–inspect模組Python
- python random模組Pythonrandom
- python Subprocess 模組Python
- Python:pathlib模組Python
- python APScheduler模組Python
- Python webargs 模組PythonWeb
- Python模組(module)Python
- Python-模組Python
- python collections模組Python
- python 模組fnmatchPython
- python–模組之random隨機數模組Pythonrandom隨機
- python–模組之os操作檔案模組Python
- Python基礎12(模組與datetime模組)Python
- Python 內建模組:os模組Python
- python模組之configparserPython