为了账号安全,请及时绑定邮箱和手机立即绑定

如何将两个合二为一的列表理解语句

如何将两个合二为一的列表理解语句

拉丁的传说 2021-10-26 13:36:37
我正在抓取 HTML 页面中呈现的文本。我使用列表理解来处理来自 HTML 页面的文本数据。我正在从网页中抓取两个不同的对象 (data,data2),我想将这两个对象都写入它们自己的列表中。data= driver.find_elements_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div/div/div[2]/div/div/div[1]/div/div[5]/div/div[5]')data2=driver.find_elements_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div/div/div[2]/div/div/div[1]/div/div[5]/div/div[6]')我正在使用 selenium webdriver,所以当对象返回时,我需要遍历对象并获取所有文本(这是在第一轮列表理解中发生的事情,我将列表分配给变量 text 和 text2)。text = [i.text for i in data]text2 = [i. text for i in data2]在第一个列表理解之后,列表返回如下['Running\nRunning Normally\nShavings\n47.6%\n739\n739\n3:38:53\n1:31:51\n0:00:00']我想将该字符串的内容拆分为一个列表,这就是我跟进第二个列表理解的原因。text=[i.split("\n")[:] for i in text]text2=[i.split("\n")[:] for i in text2]当我打印列表时它返回[['Running Slow', 'Slow and/or Small Stops', 'Shavings', '48.7%', '800', '800', '3:56:43', '1:31:51', '0:00:00']]关于如何清理它或使其更好地工作的任何建议?代码:data= driver.find_elements_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div/div/div[2]/div/div/div[1]/div/div[5]/div/div[5]')data2=driver.find_elements_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div/div/div[2]/div/div/div[1]/div/div[5]/div/div[6]')text = [i.text for i in data]text2 = [i. text for i in data2]text=[i.split("\n")[:] for i in text]text2=[i.split("\n")[:] for i in text2]print(text)print(text2)
查看完整描述

1 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

我认为这段代码应该可以工作,但我无法尝试,因为我没有数据:


text=[j for i in data for j in i.text.split("\n")]

text2=[j for i in data2 for j in i.text.split("\n")]


查看完整回答
反对 回复 2021-10-26
  • 1 回答
  • 0 关注
  • 156 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信