python - Python re.sub 问题
问题描述
我正在尝试清理re.sub
用于将文本转换为时间的字符串。我的初始字符串是"Durée : 1h30"
,我想删除"Durée : "
并获得这个输出:"1h30"
。但是,使用我当前的代码,输出是这个字符串列表:["D", "u", "r", "é", "e", " ", ":", " ", "1", "h", "3", "0"]
。
for href in response.xpath("//div[@class='item']/a[@class='roll-2']//@href"):
url = "https://www.louvre.fr" + href.extract()
yield scrapy.Request(url, callback=self.parse_dir_contents)
lenght = response.xpath("//tbody/tr/td/text()").extract()[1] #lenght = "Durée : 1h30"
item['lenght'] = [re.sub("Durée : ", "", le) for le in lenght]
解决方案
字符串在 Python 中是可迭代的,您正在迭代列表理解中的每个字符并re.sub
分别在这些字符中运行。
此外,您在这里不需要正则表达式。使用str.replace
:
item['length'] = [length.replace('Durée : ', '')]
推荐阅读
- sql - oracle sql - 获取2个日期之间的差异(sysdate减去另一个表的日期值)
- java - springboot jackson中如何根据默认的ObjectMapper定义不同的ObjectMapper?
- python - 如何根据特定目的地的严重性级别形成多种日志格式 - python 日志记录
- angular - 如何在角度 ngx-mydatepicker 中清除手动输入日期
- java - 无法在移动网站上发送 Keys.ENTER
- postgresql - pg_wal 在主数据库中变得满了
- javascript - javascript中范围和命名空间有什么区别
- jquery - 如何使用ajax在另一个页面中滑动表单
- spring - 使用 Statsd 和 Datadog 将前缀设置为 Spring Micrometer Merics
- python - 使用 Chrome 扩展 Getdata.io 获取数据并调用代码