博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
芝麻HTTP:MySQL存储
阅读量:7243 次
发布时间:2019-06-29

本文共 1125 字,大约阅读时间需要 3 分钟。

hot3.png

只要你的Scrapy Field字段名字和 数据库字段的名字 一样。那么恭喜你你就可以拷贝这段SQL拼接脚本。进行MySQL入库处理。

具体拼接代码如下:

def process_item(self, item, spider):        if isinstance(item, WhoscoredNewItem):            table_name = item.pop('table_name')            col_str = ''            row_str = ''            for key in item.keys():                col_str = col_str + " " + key + ","                row_str = "{}'{}',".format(row_str, item[key] if "'" not in item[key] else item[key].replace("'", "\\'"))                sql = "insert INTO {} ({}) VALUES ({}) ON DUPLICATE KEY UPDATE ".format(table_name, col_str[1:-1], row_str[:-1])            for (key, value) in six.iteritems(item):                sql += "{} = '{}', ".format(key, value if "'" not in value else value.replace("'", "\\'"))            sql = sql[:-2]            self.cursor.execute(sql) #执行SQL            self.cnx.commit()# 写入操作

这个SQL拼接实现了,如果数据库存在相同数据则 更新,不存在则插入 的SQL语句

具体实现就是第一个for循环,获取key作为MySQL字段名字、VALUES做为SQL的VALUES(拼接成一个插入的SQL语句)

第二个for循环,实现了 字段名 = VALUES的拼接。

和第一个for循环的中的sql就组成了 insert into  XXXXX   on duplicate key update 这个。存在则更新 不存在则插入的SQL语句。

 

转载于:https://my.oschina.net/u/3720876/blog/1626837

你可能感兴趣的文章
我的友情链接
查看>>
apache mod_expires缓存静态文件
查看>>
加密、解密的原理及Openssl创建CA和ssh的基础应用
查看>>
我的友情链接
查看>>
O2O的另类演绎
查看>>
cool1 dual生态手机的产品经:基于体验基础的商业模式变革
查看>>
安卓滑动隐藏显示菜单功能实现(还有蒙板校果),只显示一半view
查看>>
使用URL在本地显示网络上的图片
查看>>
免费公测:RDS只读实例
查看>>
阿里云 Aliplayer高级功能介绍(二):缩略图
查看>>
设计原则解读——单一职责原则、里氏替换原则
查看>>
IE10的补丁标题显示9.0!
查看>>
每天一个linux命令(15):tail 命令
查看>>
co yield避免嵌套详细代码示例。
查看>>
基于两种创建docker镜像的启动容器时区别总结
查看>>
jdk1.6的集合源码阅读之ArrayList
查看>>
Android应用实例之---使用Linkify + 正则式区分微博文本链接及跳转处理
查看>>
关于uploadify使用的一些小问题
查看>>
shell seq
查看>>
docker技术剖析--数据卷 for centos7.2
查看>>