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


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

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

主文件

  1. #-*- coding: UTF-8 -*-
  2. import csv
  3. import os
  4. import codecs
  5. import re
  6. from config4csv2mongodb import * # 引入 config.py 里面的所有变量
  7. import pymongo
  8. client = pymongo.MongoClient(MONGO_URL)
  9. db = client[MONGO_DB] #链接到 MONGODB
  10. def Read_CSV():
  11. guojia = [x for x in os.listdir('/Users/mofu/git/3.6') if os.path.isfile(x) and os.path.splitext(x)[1]=='.csv']
  12. print(guojia)
  13. for csvname in guojia:
  14. filename = os.path.join(os.getcwd(), csvname)
  15. with open(csvname, 'r', encoding='utf-8') as f:
  16. reader = csv.reader(f)
  17. for item in reader:
  18. QQ_Qun = {
  19. '名称': item[0],
  20. '群号': item[1],
  21. '群人数': item[2],
  22. '群上限': item[3],
  23. '群主': item[4],
  24. '地域': item[5],
  25. '分类': item[6],
  26. '标签': item[7],
  27. '群简介': item[8]
  28. }
  29. print(QQ_Qun)
  30. save_to_mongo(QQ_Qun)
  31. def save_to_mongo(result): # 定义保存到 MONGODB 的函数,传入 result
  32. try: # 错误判断
  33. if db[MONGO_TABLE].insert(result):
  34. print('保存到 MONGO_DB成功', result)
  35. except Exception: #如果出错就答应下面的文字+ result(result 是 product)
  36. print('存储到mongodb 错误', result)
  37. def main():
  38. Read_CSV()
  39. if __name__ == '__main__':
  40. main()

配置文件

  1. MONGO_URL = 'localhost'
  2. MONGO_DB = 'QQ_qun'
  3. MONGO_TABLE = 'Gymnasium'
  4. SERVICE_ARGS = ['--load-images=false', '--disk-cache=true']
  5. # http://phantomjs.org/api/command-line.html