高效率地儲存多個 Python 物件!你學會了嗎?
阿新 • • 發佈:2018-12-28
json檔案因其簡潔精煉,在網上特別流行,我們寫爬蟲時經常碰到網站使用json格式傳輸資料。但是如果要儲存的資料有1G,那麼讀取一個json檔案需要一次性讀入,這需要佔用很大的記憶體,對電腦壓力過大。所以我們需要將資料儲存為很多個物件,通過逐行讀取方式減輕記憶體佔用壓力。所以今天就講到jsonlines這個庫,希望大家能有所收穫。
jsonlines
- 每一行都是一個json或python物件
- 採用utf-8編碼
jsonlines庫的特性
便捷的open()功能
- 易於寫入
- 傳入檔名和寫入方式mode
- 返回Reader或Writer例項
- 能被用做上下文管理器
安裝
pip install jsonlines
使用方法
jsonlines可以儲存python的各種資料型別物件,如列表、字典、數字、元組、集合等等。
例如以python字典型別逐行寫入到jsonl檔案裡
加群:960410445 一起學習一起交流!
import jsonlines with jsonlines.open('data.jsonl', mode='w') as writer: writer.write({'a':5}) writer.write({'a':6}) writer.write({'a':7})
發現當前工作路徑下已經生成了一個jsonl檔案。
以逐行的方式讀取jsonl檔案裡的多個字典
with jsonlines.open('data.jsonl', mode='r') as reader: for row in reader: print(type(row), row)
執行
<class 'dict'> {'a': 5} <class 'dict'> {'a': 6} <class 'dict'> {'a': 7}