AttributeError: у объекта 'list' нет атрибута 'split'. Python, разделение списка на ячейки .csv по переводу строки - PullRequest
0 голосов
/ 09 апреля 2020

Я пытаюсь разбить список на отдельные ячейки.

Однако нет разделителя запятой, который разделяет список, только разрыв строки.

Я прочитал несколько других постов с той же ошибкой атрибута, но до сих пор не понял, где я ошибаюсь.

Мой соответствующий код:

from selenium import webdriver

ChromeOptions = webdriver.ChromeOptions()
driver = webdriver.Chrome('/Users/jones/Downloads/chromedriver')

driver.get('https://www.linkedin.com/in/pauljgarner/')

rows = []

name = sel.xpath('normalize-space(//li[@class="inline t-24 t-black t-normal break-words"])').extract_first()
experience = driver.find_elements_by_xpath('//section[@id = "experience-section"]/ul//li')

rows.append([name])
for item in experience:
    rows[0].append(item.text)
    print(item.text)
    print("")

with open(parameters.file, 'w', encoding='utf8') as file:
    writer = csv.writer(file)
    for row in rows:
        writer.writerow(row.split('\n'))

Список взят из «опыта»:

Freelance Python Developer
Company Name
Depop
Dates Employed
Jun 2015 – Present
Employment Duration
4 yrs 11 mos

Последние четыре строки моего кода выглядят так, как будто они должны выполнять обман, но вместо этого я получаю ошибку атрибута. Куда я иду не так? Ваша помощь очень ценится

ОБНОВЛЕНИЕ : идеальный результат Excel: enter image description here

Текущий Excel (с попыткой решения): enter image description here

1 Ответ

1 голос
/ 09 апреля 2020

Вы получаете эту ошибку, потому что rows всегда будет списком с одним элементом, который также является списком. split - это метод для str экземпляров, а не списков. Вы можете видеть, что это так, потому что вы только append обращаетесь к первому элементу:

for item in experience:
    rows[0].append(item.text)

. Вы можете упростить свой код, создав rows в виде списка строк:

rows = [name]
for item in experience:
    rows.append(item.text)

Теперь ваш CSV-писатель будет работать так, как вы ожидаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...