1. 程式人生 > >高效率地儲存多個 Python 物件!你學會了嗎?

高效率地儲存多個 Python 物件!你學會了嗎?

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}