python处理完数据导入数据库_python操作数据库之批量导入
python操作數(shù)據(jù)庫(kù)之批量導(dǎo)入
Python語(yǔ)法簡(jiǎn)潔清晰,特色之一是強(qiáng)制用空白符(white space)作為語(yǔ)句縮進(jìn)。
Python具有豐富和強(qiáng)大的庫(kù)。它常被昵稱(chēng)為膠水語(yǔ)言,能夠把用其他語(yǔ)言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。常見(jiàn)的一種應(yīng)用情形是,使用Python快速生成程序的原型(有時(shí)甚至是程序的最終界面),然后對(duì)其中[3] 有特別要求的部分,用更合適的語(yǔ)言改寫(xiě),比如3D游戲中的圖形渲染模塊,性能要求特別高,就可以用C/C++重寫(xiě),而后封裝為Python可以調(diào)用的擴(kuò)展類(lèi)庫(kù)。需要注意的是在您使用擴(kuò)展類(lèi)庫(kù)時(shí)可能需要考慮平臺(tái)問(wèn)題,某些可能不提供跨平臺(tái)的實(shí)現(xiàn)。
批量從mongodb導(dǎo)入數(shù)據(jù)到redis
結(jié)構(gòu)圖如下
python->mongodb:python取出mongodb數(shù)據(jù)
mongodb->redis:mongodb數(shù)據(jù)經(jīng)過(guò)處理后保存到redis
python代碼如下:
# -*- coding: utf-8 -*-
import redis
import pymongo
import logging
class savequestionmafengwo(object):
def __init__(self):
logging.basicConfig(filename = "./save-mafengwo-question.log", level = logging.DEBUG)
self.redis_pool_conn=self.redis_pool()
self.redis_db=self.connection_redis_db();
self.mongo_db=self.connection_mongo_db();
self.url='http://www.mafengwo.cn/wenda/detail-';
self.hz='.html';
def redis_pool(self):
pool_redis=redis.ConnectionPool(host='IP',port=PORT,db=DB,password=PASS);
return pool_redis;
def connection_redis_db(self):
pool=self.redis_pool_conn;
redis_db = redis.Redis(connection_pool=pool)
return redis_db;
def get_data(self,start):
mongo=self.mongo_db
qas=mongo.find({"source":"mafengwo","type":"question"},{"qid":1}).skip(start).limit(40000);
return qas;
def put_data(self,start):
qas=self.get_data(start);
i=start
for qa in qas:
try:
urlF = self.url + str(qa['qid']) + self.hz;
self.redis_set_value(urlF);
logging.debug(str(i) + "------" + urlF)
i = i + 1
except:
logging.debug("error:" + str(qa['_id']))
raise
def connection_mongo_db(self):
client = pymongo.MongoClient("IP", PORT)
mydb = client.hello # new a database
mydb.authenticate('USER', 'PASS') # check auth
muser = mydb.QA# new a table
return muser;
def redis_set_value(self,urlF):
db =self.redis_db
db.set(urlF,"1");
if __name__ == '__main__':
savequestionmafengwo=savequestionmafengwo();
start={0,40000}
for st in start:
savequestionmafengwo.put_data(start)
總結(jié)
以上是生活随笔為你收集整理的python处理完数据导入数据库_python操作数据库之批量导入的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: sigterm信号_Golang之信号处
- 下一篇: pythonjs设置_python do