CSV 导入 MongoDB

如何用python批量把 CSV 文件导入 MongoDB

因为我用 爬取了非常多的 QQ 群数据,每个关键词会有不同的 CSV 文件,每个 CSV 文件里面有几百条数据,这样分开的 CSV 文件分析起来非常麻烦。所以我们把不同类别的 CSV 导入到一个数据库表里面方便分析和保存。


我们有两个文件。

一个是主文件,一个是配置文件。配置文件里面主要是链接 MONGODB 的配置。

由于 CSV 的特点是以,隔开的。而不是字典模式。所以在这个 QQ_Qun里面把它转换成了字典。再导入 MONGODB。

主文件

#-*- coding: UTF-8 -*-
import csv
import os
import codecs
import re
from config4csv2mongodb import *   # 引入 config.py 里面的所有变量
import pymongo

client = pymongo.MongoClient(MONGO_URL)
db = client[MONGO_DB]   #链接到 MONGODB

def Read_CSV():
    guojia = [x for x in os.listdir('/Users/mofu/git/3.6') if os.path.isfile(x) and os.path.splitext(x)[1]=='.csv']
    print(guojia)
    for csvname in guojia:
        filename = os.path.join(os.getcwd(), csvname)
        with open(csvname, 'r', encoding='utf-8') as f:
            reader = csv.reader(f)
            for item in reader:
                QQ_Qun = {
                    '名称': item[0],
                    '群号': item[1],
                    '群人数': item[2],
                    '群上限': item[3],
                    '群主': item[4],
                    '地域': item[5],
                    '分类': item[6],
                    '标签': item[7],
                    '群简介': item[8]
                }
                print(QQ_Qun)
                save_to_mongo(QQ_Qun)


def save_to_mongo(result):  # 定义保存到 MONGODB 的函数,传入 result
    try:  # 错误判断
        if db[MONGO_TABLE].insert(result):
            print('保存到 MONGO_DB成功', result)
    except Exception:  #如果出错就答应下面的文字+ result(result 是 product)
        print('存储到mongodb 错误', result)

def main():
    Read_CSV()


if __name__ == '__main__':
    main()

配置文件

MONGO_URL = 'localhost'
MONGO_DB = 'QQ_qun'
MONGO_TABLE = 'Gymnasium'

SERVICE_ARGS = ['--load-images=false', '--disk-cache=true']
# http://phantomjs.org/api/command-line.html
Comments
Write a Comment