# -*- coding:utf-8 -*-
# item_mongodb.py
import redis
import pymongo
import json def main():
redis_connect = redis.StrictRedis(host='127.0.0.1', port=6379, db=0)
mongo_connect = pymongo.MongoClient(host='127.0.0.1', port=27017) db = mongo_connect['sina']
collection = db['sina_articles'] while True:
source, data = redis_connect.blpop(['sina:items'])
item = json.loads(data)
collection.insert(item) if __name__ == '__main__':
main()
# -*- coding:utf-8 -*-
# item_mysql.py
import MySQLdb
import mysql.connector
import redis
import json def main():
redis_connect = redis.StrictRedis(host='localhost', password='', port=6379, db=0)
mysql_connect = mysql.connector.connect(host='127.0.0.1', port=3306, user='root', passwd='', database='sina', use_unicode=True) while redis_connect.exists('sina:items'):
source, data = redis_connect.blpop('sina:items')
item = json.loads(data, encoding='utf-8')
print (item)
cur = mysql_connect.cursor()
cur.execute(
'insert into sina_articles(parent_title, parent_url, sub_title, sub_url, sub_path, file_url, '
'file_title, file_content, crawled, spider) values(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s)',
(item['parent_title'], item['parent_url'], item['sub_title'], item['sub_url'], item['sub_path'],
item['file_url'], item['file_title'], item['file_content'], item['crawled'], item['spider']))
mysql_connect.commit()
cur.close()
mysql_connect.close() if __name__ == "__main__":
main()
# -*- coding:utf-8 -*-
# redis数据库 到 Excel
import redis
import json
from openpyxl import Workbook def main():
# redis_connect = redis.StrictRedis(host='localhost', port=6379, db=0)
redis_connect = redis.StrictRedis(host='localhost', password='', port=6379, db=0)
a = 1
while redis_connect.exists('hungry:items'):
source, data = redis_connect.blpop('hungry:items')
item = json.loads(data, encoding='utf-8')
print (item)
a =a + 1
ws.append([item['id'],
item['classification'],
item['shopName'],
item['address'],
item['foodInformation'][0]['rating'],
item['foodInformation'][0]['price'],
int(item['foodInformation'][0]['sale']),
int(item['foodInformation'][0]['Evaluation']),
item['foodInformation'][0]['foodName'],
])
wb.save('nba.xlsx') # 保存文件
print ('a:', a) if __name__ == "__main__":
wb = Workbook() # class实例化
ws = wb.active # 激活工作表
ws.title = "New Shit"
title_list = ['id', 'classification', 'shopName', 'address', 'rating', 'price', 'Evaluation', 'foodName', 'sale']
ws['A1'] = '饿了么'
ws.append(title_list) # 添加一行数据 main()

redis数据库到mysql或mongodb数据库的更多相关文章

  1. <day001>存储到Mysql、mongoDB数据库+简单的Ajax请求+os模块+进程池+MD5

    任务1:记住如何存储到Mysql.mongoDB数据库 ''' 存储到Mysql ''' import pymysql.cursors class QuotePipeline(object): def ...

  2. Python Json分别存入Mysql、MongoDB数据库,使用Xlwings库转成Excel表格

    将电影数据 data.json 数据通过xlwings库转换成excel表格,存入mysql,mongodb数据库中.python基础语法.xlwings库.mysql库.pymongo库.mongo ...

  3. Python学习笔记(五)之Python操作Redis、mysql、mongodb数据库

    操作数据库 一.数据库 数据库类型主要有关系型数据库和菲关系型数据库. 数据库:用来存储和管理数的仓库,数据库是通过依据“数据结构”将数据格式化,以记录->表->库的关系存储.因此数据查询 ...

  4. Redis/Mysql/SQLite/MongoDB 数据库对比

    一.Redis: redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(so ...

  5. 使用官方组件下载图片,保存到MySQL数据库,保存到MongoDB数据库

    需要学习的地方,使用官方组件下载图片的用法,保存item到MySQL数据库 需要提前创建好MySQL数据库,根据item.py文件中的字段信息创建相应的数据表 1.items.py文件 from sc ...

  6. python操作三大主流数据库(10)python操作mongodb数据库④mongodb新闻项目实战

    python操作mongodb数据库④mongodb新闻项目实战 参考文档:http://flask-mongoengine.readthedocs.io/en/latest/ 目录: [root@n ...

  7. python操作三大主流数据库(9)python操作mongodb数据库③mongodb odm模型mongoengine的使用

    python操作mongodb数据库③mongodb odm模型mongoengine的使用 文档:http://mongoengine-odm.readthedocs.io/guide/ 安装pip ...

  8. python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查

    python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...

  9. python操作三大主流数据库(7)python操作mongodb数据库①mongodb的安装和简单使用

    python操作mongodb数据库①mongodb的安装和简单使用 参考文档:中文版:http://www.mongoing.com/docs/crud.html英文版:https://docs.m ...

随机推荐

  1. RF Setup和Teardown的使用

    执行顺序 setup执行顺序是:project级别setup>suite级别setup>case级别setup 无返回值 Run Keywords | [KW1 | arg1 | arg2 ...

  2. 分组 vs 联合

    // 分组 function groupBy(groups) { return groups.reduce((pre, cur) => { pre[cur.groupId] = (pre[cur ...

  3. AS基本设置

    1,点开as之前应该做的事  很多人一定会在这个界面卡顿很久,其实这是as在检测更新.所以我们在点开as之前先修改它的配置文件,让它不再更新. 找到你安装as的目录,进入bin文件夹找到idea.pr ...

  4. QDataSet – 如何比较两个数据集内容的差异

    QDataSet 提供了两个函数来比较两个数据集的差异,并将结果保存到第三个数据集. procedure Intersect(ASource1, ASource2: TQDataSet; AField ...

  5. Spring 中如何自动创建代理(spring中的三种自动代理创建器)

    Spring 提供了自动代理机制,可以让容器自动生成代理,从而把开发人员从繁琐的配置中解脱出来 . 具体是使用 BeanPostProcessor 来实现这项功能. 这三种自动代理创建器 为:Bean ...

  6. oracle 11g错误ora-01033:oracle initialization or shutdown in progress解决办法

    原文出自:http://blog.csdn.net/liverliu/article/details/6410287 一.首先:问题的产生原因,先前我在f:/llh/目录创建的一个bookspace表 ...

  7. GoLand远程Linux开发环境搭建

    Goland 远程调试本文介绍如何从本机的goland连接远端server上的go代码进行调试 goland下载安装 建议购买正版,科学使用自行搜索. 需要安装插件,确保可以访问官网,不然配置下pro ...

  8. 用DotNetDetour HOOK .net类库

    https://github.com/bigbaldy1128/DotNetDetour ------------------------------------------------------- ...

  9. Day06:抽象类、接口和内部类(上)

    JVAV中的常量 什么是常量? 常量就是不会变化的数值 为什么需要常量? 方便使用(调用)不会变化的数值 特性 不能修改 所有对象共享 常量一定是成员 定义 public static final 类 ...

  10. cocos2dx基础篇(24) 场景切换效果CCTransitionScene

    [3.x]     (1)去掉 "CC"     (2)卡牌翻转 TransitionFlip 中的样式 tOrientation // //1: kCCTransitionOri ...