Redis导入MySql脚本

本文介绍了一个Python脚本,通过Redis和MySQL实现房产信息的高效存储和同步。程序从Redis队列中读取房源详情,然后将JSON格式的数据插入到MySQL数据库中。遇到错误时,程序会回滚事务。
# -*- coding:utf-8 -*-
#@Time : 2022/1/7 21:17
#@Author : dogge
#@File :test.py
#@software:PyCharm

# -*- coding: utf-8 -*-
import json
import redis  # pip install redis
import pymysql


def main():
    # 指定redis数据库信息
    rediscli = redis.StrictRedis(host='192.168.226.128', port = 6379,password= 'xxx',db = 0)
    # 指定mysql数据库
    mysqlcli = pymysql.connect(host='127.0.0.1', user='xxx', passwd='xxx', db='fangtianxia', charset='utf8')
    # 无限循环
    while True:
        source, data = rediscli.blpop(["fangtianxia:items"]) # 从redis里提取数据
        item = json.loads(data.decode('utf-8')) # 把 json转字典
        try:
            # 使用cursor()方法获取操作游标
            cur = mysqlcli.cursor()
            # 使用execute方法执行SQL INSERT语句
            sql = '''insert into house_info(name,big_link,detail_link,house_type,lease_scope,orientation,area,address,city,advantage)
        values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
        '''
            cur.execute(sql, (item['name'], item['big_link'], item['detail_link'],
                                             item['house_type'], item['lease_scope'], item['orientation'], item['area'],
                                             item['address'], item['city'], item['advantage'],))
            # 提交sql事务
            mysqlcli.commit()
            #关闭本次操作
            cur.close()
            print ("插入 %s" % item['name'])
        except pymysql.Error as e:
            mysqlcli.rollback()
            print ("插入错误" ,str(e))


if __name__ == '__main__':
    main()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值