如何将带单引号的数据正确的以JSon形式插入到mysql中

1.spider代码

以下代码尤其注意.replace(“’”, “””)这个方法,因为有事不执行‘替换成’‘,在数据插入到mysql中容易出错。

    #工艺的具体细节
    item['food_make_content'] = response.xpath('//*[@id="content"]/div[1]/div[3]/dl/dd/div[2]/ul/li/text()').extract()
    data=[]
    #将找到的title和content依次插入到数据库中,并转换为JSon数据
    for i in range(0, len(item['food_make_title'])):
        data.append({
            'title':item['food_make_title'][i],   #加index插入后可以实现一一对应
            'content': item['food_make_content'][i]
        })
    # use two symbol '
    #item['food_make_all'] = str(data).replace("'", "''")
    # use one symbol "
    item['food_make_all'] = str(data).replace("'", "\"")  #字符串才有replace方法,先转换为str
    yield item

replace:字符串

join:字符串

append:列表

#####2.pipeline
将数据插入到Mysql

```shell

class Menu1Pipeline(object):

    # 建立数据库连接
    def __init__(self):
        self.conn = pymysql.connect(host='27.25.114.39', user='root', passwd='123456', db='menu')

    def process_item(self, item, spider):
       #插入数据
        self.conn.query(
            "insert makeway(foodname,makeway) values('{}','{}')"
                .format(item.get('food_name'), item.get('food_make_all'))
        )

        # 执行
        self.conn.commit()
        return item

    def close_spider(self, spider):
        # 释放连接
        self.conn.close()

猜你喜欢

转载自blog.csdn.net/u014229742/article/details/82107858