python操作mongo数据库

5 篇文章 0 订阅
2 篇文章 0 订阅
归档写过的python进行mongo数据库操作的code
# -*- coding: utf-8 -*-
#!/usr/bin/python

"""
Spyder Editor

This is a temporary script file.
"""
import os
import re
import sys
import json
import pymongo
import time
import multiprocessing
#from datetime import *

count=0


def getMongoClientInstance():
    if 'mongoClientSingletonInstance' not in globals():
        globals()['mongoClientSingletonInstance'] = pymongo.MongoClient('114.119.9.27', 27017)
    return globals()['mongoClientSingletonInstance']

def insert_mongodb(db_name, collection_name, documents):
    mongo_client = getMongoClientInstance()
    try:
        mongo_client[db_name][collection_name].insert_many(documents)
    except pymongo.errors.AutoReconnect as e:
        pass

def find_files(dir, wildcard, recursion):
    result = []
    exts = wildcard.split(" ")
    for root, subdirs, files in os.walk(dir):
        for name in files:
            for ext in exts:
                if (name.endswith(ext)):
                    full_name = os.path.join(root, name)
                    result.append(full_name)
                    break
        if (not recursion):
            break
    return result

collect_my=[]

def Adaptor():
    filelist=find_files("/home/toupiao/", 'log', False)
    for logf in filelist:
        print logf
        #fd_r=open(file)
        fd_r=open(logf,'r')
        line_list=fd_r.read().splitlines()
        for line in line_list:
            pot = line.find('{')
            dbline=line[pot:]
            #print dbline
            global collect_my
            collect_my.append(dbline)
            #os.write(fd_w,info)
            global count
            count += 1
            collect_my=list(json.loads(x) for x in collect_my)
            write_db("work1")
            collect_my=[]
        fd_r.close()

def write_db(pid_name):
    global collect_my
    #print pid_name,time.time()
    insert_mongodb('admin', 'deviceinfo', collect_my)
    #print pid_name,time.time()

if __name__ == "__main__":
    Adaptor()
    #p1 = multiprocessing.Process(target=write_db,args=('work1',))
     
    #p1.start()
    print count


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值