如何用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