Как сделать два в одном утверждении понимания списка - PullRequest
0 голосов
/ 31 января 2019

Я очищаю текст, отображаемый на странице 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]')

Я использую селеновый веб-драйвер, поэтому, когда объекты возвращаются, мне нужно перебрать объект и перехватить весь текст (именно это происходит в первом раунде понимания списка, когда я назначаю спискипеременная 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 Ответ

0 голосов
/ 31 января 2019

Я думаю, что этот код должен работать, но я не могу попробовать его, так как у меня нет данных:

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")]
...