# -*- coding: utf-8 -*-
import os
import csv
import pymongo
from pymongo import MongoClient

#建立连接
client = MongoClient('10.20.4.79', 27017)
#client = MongoClient('10.20.66.106', 27017)
db_name = 'ta' #数据库名
db = client[db_name]

#读取CVS文件并插入到mongoDB数据库 的tvsplst集合中
def InsertDataFromCVS(csvFile):
  strFile = unicode(csvFile,'utf8')
  if os.path.isfile(strFile):
    readFile = file(strFile, 'rb')
    reader = csv.reader(readFile)
    i = 0
    listKey =[]
    sqlDict = {}
    for line in reader:
      i = i + 1
      sqlDict.clear()
      if i == 1:
        for it in line:
          if it == 'PlstID':
            listKey.append('_id')
          else:
            listKey.append(it)
      else :
        j = 0
        for it in line:
          sqlDict[listKey[j]] = it.decode('gbk')
          j = j + 1

        try:
          db.tvsplst.insert(sqlDict)
        except:
          print i,sqlDict
    readFile.close()

#测试代码
strcsvFile='D:\\TVSPlst.csv'
InsertDataFromCVS(strcsvFile)

#从mongoDB数据库中读取tvsplst数据写到CSV文件里面
def WriteTvsPlsttoCsv(csvFile):
  strFile = unicode(csvFile,'utf8')
  headList =['PlstID', 'MediaID', 'PlstDate', 'Hard_STime']
  writer = csv.writer(file(strFile, 'wb'))
  writer.writerow(headList)
  headList[0]='_id'

  for u in db.tvsplst.find():
    vList = []
    for k in headList:
      vList.append(u[k].encode('utf8'))
      writer.writerow(vList)

#测试代码
csvfile = 'D:\\test.csv'
WriteTvsPlsttoCsv(csvfile)

python mongodb 读写CSV文件的更多相关文章

  1. (Python基础教程之十二)Python读写CSV文件

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  2. 使用Python读写csv文件的三种方法

    Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是 ...

  3. python读写csv文件

    文章链接:https://www.cnblogs.com/cloud-ken/p/8432999.html Python读写csv文件 觉得有用的话,欢迎一起讨论相互学习~Follow Me 前言 逗 ...

  4. python3读写csv文件

    python读取CSV文件   python中有一个读写csv文件的包,直接import csv即可.利用这个python包可以很方便对csv文件进行操作,一些简单的用法如下. 1. 读文件 csv_ ...

  5. python3使用csv包,读写csv文件

    python操作csv,现在很多都用pandas包了,不过python还是有一个原始的包可以直接操作csv,或者excel的,下面举个例子说明csv读写csv文件的方法: import os impo ...

  6. 用opencsv文件读写CSV文件

    首先明白csv文件长啥样儿: 用excel打开就变成表格了,看不到细节 推荐用其它简单粗暴一点儿的编辑器,比如Notepad++, csv文件内容如下: csv文件默认用逗号分隔各列. 有了基础的了解 ...

  7. 利用JavaCSV API来读写csv文件

    http://blog.csdn.net/loongshawn/article/details/53423121 http://javacsv.sourceforge.net/ 转载请注明来源-作者@ ...

  8. 使用 Apache Commons CSV 读写 CSV 文件

    有时候,我们需要读写 CSV 文件,在这里给大家分享Apache Commons CSV,读写 CSV 文件非常方便. 具体官方文档请访问Apache Commons CSV. 官方文档已经写得很详细 ...

  9. python在处理CSV文件时,字符串和列表写入的区别

    概述 Python在处理CSV文件时,如果writerow的对象是<type 'unicode'>字符串时,写入到CSV文件时将会出现一个字符占一个单元格的情况: 但是将字符串转换为列表类 ...

随机推荐

  1. 关于SWT/JFace的API文档

    在CSDN上下了几个CHM格式的文档,下载的时候要付的分数还挺高,但是下载下来三个都不能用,左边罗列了所有的类和方法.双击按回车右边都没有内容. 真坑爹. >>>>>&g ...

  2. 在安卓下使用python连接蓝牙串口模块(HC-06)

    在安卓上安装Python: 请参考:https://github.com/kuri65536/python-for-android/blob/master/README.md下载程序文件需要访问 ht ...

  3. winform 上传

    public class ImitateSelectFile { public void Select(HtmlElement htmlEle, string fileFullPath) { html ...

  4. nginx支持url的PATHINFO

    fastcgi_split_path_info ^(.+?\.php)(/.*)$; set $path_info $fastcgi_path_info; fastcgi_param PATH_INF ...

  5. [原创]HTML标签总结!! 第一次画 尚需要改进 多关照

    HTML 页面标签总结  拿xMind写了一下午总结的   只能传图片了   CSS明天整理  后天看看能不能传上来 //======================================= ...

  6. ArrayList() 输出

    import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.Li ...

  7. 使用PSSH批量SSH操作Linux服务器

    http://www.opstool.com/article/266 服务器多了,有一个烦恼就是如何批量快速操作一堆服务器.这里我推荐一下经常使用利器pssh.这个工具给我的工作带来了莫大的帮助. 简 ...

  8. C#学习笔记4:关键词大小写、复合格式化等

    1.取消选择的单选按钮值      RadioButton1.Checked=RadioButton2.Checked = false;//RadioButton1.Text = RadioButto ...

  9. UDP 广播 Java

    1.服务端 public class UdpBroadcastServer { /** * @param args */ public static void main(String[] args) ...

  10. New Lantern Version Available Upgrade Lantern for improved blocking resistance!

    New Lantern Version Available Upgrade Lantern for improved blocking resistance! The new version: is ...