Python將CSV數據寫入到MongoDB


今天要介紹的內容是 MongoDB,這邊不會詳細來介紹 MongoDB 是什麼,以及如何來安裝和操作等,會著重於如何使用 Python 來寫入數據到 MongoDB。

前置作業

先創建一個 Project 資料夾,我們要在這個資料夾裡面存放給 MongoDB 使用的設定檔案,另外也需要你先到政府資料開放平臺中,尋找你感興趣的數據資料,記得下載下來的數據副檔名要是 csv,後續才會比較容易操作喔。


政府資料開發平台

準備數據

我所使用的數據是上櫃股票行情,你可以根據這個連結也下載和我相同的數據。

啟動 MongoDB

我們在資料夾底下已經建立好名為「MongoDB」的資料夾,接下來只需要在終端機上輸入這串指令即可,記得在 --dbpath 後方的位置改為你資料夾的絕對位置即可 ./mongodb --dbpath /Users/jackson/Desktop/test_project/mongodb如果在最後一行找到 waiting for connections on port 27017,就表示你的 MongoDB 資料庫已經在運作了。

MongoDB 也有提供一個視覺化介面 MongoDB Compass,可以幫助你更清楚的看到這些數據,以及方便去操作資料庫。

成功連上線了以後,請在左下角有一個 + 的 icon,來創建你的數據資料夾。


這部分也完成了以後,就可以進入到寫程式碼的環節囉。

透過 Python 將 csv 數據寫入到 MongoDB

所需要的套件:
  • Pandas
  • Pymongo
import json
import pandas as pd
from pymongo import MongoClient

client = MongoClient("127.0.0.1", 27017)
db = client['test_data']
collection = db ['open_data']

data = pd.read_csv('/Users/jackson/Desktop/test_project/test_data.csv',encoding = 'UTF-8')
data_json = json.loads(data.to_json(orient='records'))
collection.insert_many(data_json)
完成程式碼的執行後,就可以透過 MongoDB Compass 中看到數據已經匯入,如果你沒有看到數據的話,可以點擊右邊 Refresh 的按鈕。


張貼留言

較新的 較舊