【问题标题】:Python xpath and math operatorsPython xpath 和数学运算符
【发布时间】:2018-09-19 00:16:32
【问题描述】:

我正在尝试计算使用 xpath 提取的数值的税,以将其保存在 csv 文件中,但我不知道我做错了什么或是否需要添加其他内容。

这是代码:

         import math
         for ntp in response.css('div.content-1col-nobox'):
             price1 = ntp.xpath('normalize-space(//tr[2]/td[@id="right_cell"][1])').extract()[0].split(None,1)[0].replace(",",".")
             tax = price1 * 0.22
             price = price1 + tax

          writer.writerow({
             '*StartPrice': price,\

这是我得到的错误:

    tax = price1 * 0.22
    TypeError: can't multiply sequence by non-int of type 'float'

任何帮助将不胜感激。

【问题讨论】:

  • 您能否包含一个示例数据集,以便重现错误?
  • 我正在尝试粘贴整个代码,但我不知道在哪里
  • 有时,创建样本数据集更容易;看这里:stackoverflow.com/questions/20109391/…

标签: python xpath scrapy math-functions


【解决方案1】:

缺少您的数据,这是我的建议:

import math
list_prices = ['11.15', '15.00', '1.1111']
taxed_prices = []
for price1 in list_prices:
    taxed = float(price1) * 1.22 # note that "* 1.22" saves you one step vis-a-vis "price *0.22 + price"
    taxed_prices.append(taxed)
print(taxed_prices)

【讨论】:

  • span class="comcopy">scrapy刮出来的价格,用xpath解压出来的,基本上就是你看到的原帖的价格,但是在csv文件中标明价格之前,我要加上含税的价格
  • 如果回复有帮助,请点击“upvote”和“accept”。 ;)
  • 我得到这个错误:taxed = float(price1) * 1.22 ValueError: could not convert string to float: '.'这就是我实现的方式:listino = ntp.xpath('normalize-space(//tr[2]/td[@id="right_cell"][1])').extract()[0].split(None,1)[0].replace(",",".") taxed_prices = [] for price1 in listino: taxed = float(price1) * 1.22 taxed_prices.append(taxed)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
相关资源
最近更新 更多