1. 程式人生 > >python中csv檔案中資料新增到MongoDB資料庫

python中csv檔案中資料新增到MongoDB資料庫

使用csv中的DictReader函式讀取

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time   : 2018/10/21 11:31
# @Author  : deli Guo
# @Site   : 
# @File   : csv檔案存入mongoDB.py
# @Software  : PyCharm

# 導包
from pymongo import MongoClient
import csv
# 建立連線MongoDB資料庫函式
def connection():
    # 1:連線本地MongoDB資料庫服務
    conn=MongoClient("localhost")
    # 2:連線本地資料庫(guazidata)。沒有時會自動建立
    db=conn.guazidata
    # 3:建立集合
    set1=db.data
    # 4:看情況是否選擇清空(兩種清空方式,第一種不行的情況下,選擇第二種)
    #第一種直接remove
    set1.remove(None)
    #第二種remove不好用的時候
    # set1.delete_many({})
    return set1
def insertToMongoDB(set1):
    # 開啟檔案guazi.csv
    with open('guazi.csv','r',encoding='utf-8')as csvfile:
        # 呼叫csv中的DictReader函式直接獲取資料為字典形式
        reader=csv.DictReader(csvfile)
        # 建立一個counts計數一下 看自己一共添加了了多少條資料
        counts=0
        for each in reader:
            # 將資料中需要轉換型別的資料轉換型別。原本全是字串(string)。
            each['index']=int(each['index'])
            each['價格']=float(each['價格'])
            each['原價']=float(each['原價'])
            each['上牌時間']=int(each['上牌時間'])
            each['表顯里程']=float(each['表顯里程'])
            each['排量']=float(each['排量'])
            each['過戶數量']=int(each['過戶數量'])
            set1.insert(each)
            counts+=1
            print('成功添加了'+str(counts)+'條資料 ')
# 建立主函式
def main():
    set1=connection()
    insertToMongoDB(set1)
# 判斷是不是呼叫的main函式。這樣以後呼叫的時候就可以防止不會多次呼叫 或者函式呼叫錯誤
if __name__=='__main__':
    main()