如何用python批量把 CSV 文件导入 MongoDB
因为我用 爬取了非常多的 QQ 群数据,每个关键词会有不同的 CSV 文件,每个 CSV 文件里面有几百条数据,这样分开的 CSV 文件分析起来非常麻烦。所以我们把不同类别的 CSV 导入到一个数据库表里面方便分析和保存。
我们有两个文件。
一个是主文件,一个是配置文件。配置文件里面主要是链接 MONGODB 的配置。
由于 CSV 的特点是以
,隔开的。而不是字典模式。所以在这个QQ_Qun里面把它转换成了字典。再导入 MONGODB。
主文件
#-*- coding: UTF-8 -*-import csvimport osimport codecsimport refrom config4csv2mongodb import * # 引入 config.py 里面的所有变量import pymongoclient = pymongo.MongoClient(MONGO_URL)db = client[MONGO_DB] #链接到 MONGODBdef 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 的函数,传入 resulttry: # 错误判断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
