LINUX.ORG.RU

Не могу загрузить данные в csv-файл

 ,


0

1
import requests
from bs4 import BeautifulSoup
import csv

url = "http://www.ilife.if.ua/show_cat.php?catid=21675&grid=1154"
r = requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')

phone_name = soup.find_all("a", attrs={"class": "tov"})

list_of = []
for item in phone_name:
    name = item.text
    print name
    list_of.append(name)
    
with open('index.csv', 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(name)  
   
print list_of

Перемещено leave из web-development


Ответ на: комментарий от Shadow

Ошибка:

Traceback (most recent call last):
File «C:\Python27\MyWork\one.py», line 20, in <module>
writer.writerow(list_of)
UnicodeEncodeError: 'ascii' codec can't encode characters in
position 1-2: ordinal not in range(128)

kindix
() автор топика
Ответ на: Ориентир - utf8 от kindix

А это уже ошибка в логике. Ваш код

writer.writerow(list_of)

Пишет весь список list_of в одну строку. Вам надо writerow делать не по итогам работы цикла, а в самом цикле. Писать именно каждый name.

Deleted
()

так а где ошибка-то? или ты хочешь, чтобы мы за тебя твой скрипт отладили и отдали готовый вариант?

leave ★★★★★
()
Ответ на: комментарий от leave

Нет не хочу! я обрил инет и решение даной проблеми не нашол, потому написал сюда!

kindix
() автор топика
Ответ на: комментарий от kindix

writerow аргументом принимает list, а не переменную. Именно в этом была проблема. Внимательнее читай документацию! И примеры.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.