2021-07-11山东大学暑期实训第二周3

文章目录


前言

前面已经说明了对一些字段的处理,这次的内容主要是对价格字段的处理。


数据处理

按照数据库的统一格式,我们选取的价格为云服务器每月的价格。我们从网页上爬取的价格为文本字段,需要转换为数字字段。

通过观察我们可以看到,有些价格字段是可以直接转换的,而有些价格字段存在千分位符,而千分位符前面的位数也有三种情况,分别是有1位、2位、3位。我们就要对千分位符前后的数据分别进行处理。

        if ',' in rows[i][11]:
            if rows[i][11][1]==',':
                price = int(rows[i][11][0])*1000+int(float(rows[i][11][2:]))
            elif rows[i][11][2]==',':
                price = int(rows[i][11][0:2]) * 1000 + int(float(rows[i][11][3:]))
            elif rows[i][11][3]==',':
                price = int(rows[i][11][0:3]) * 1000 + int(float(rows[i][11][4:]))

有些云服务器是没有每月价格的,我们给他们赋值为0。

        elif rows[i][11]=='':
            price=0

对于一般的就可以直接处理。

else: price=int(float(rows[i][11]))

最后我们就可以将处理我的数据插入到数据库中。

cur = db.cursor()
for i in range(len(info)):
    sql = "INSERT INTO huawei_product VALUES ({},'{}',{},'{}','{}',{},{},'{}','{}',{},'{}')"\
        .format(info[i][0],info[i][1],info[i][2],info[i][3],info[i][4],info[i][5],info[i][6],info[i][7],info[i][8],info[i][9],info[i][10])
    try:
       # 执行sql语句
       cur.execute(sql)
       # 提交到数据库执行
       db.commit()
       print("成功",i)
    except:
       # Rollback in case there is any error
       db.rollback()
       print("失败",i)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值