@exded

Pytho запись данных в csv?

Есть цикл записи картинок, он работает хорошо парсит все картинки которые нужно, но когда доходит до записи в csv берется только первое значение.

IMG = 'css  селекторы'

r = reqests.get('url').text
f = fromstring(f)

df = DataFrame(columns=('загаловки'))

slovar = [(заголовки, переменные),]


for image in f.cssselect(IMG):
    u = image.cssselect('img')[0]
    un = u.get('src')
    unn = urljoin(URL, un)
    t = requests.get(unn)
    k = open('image/%s' % un.split('/')[-1], 'wb')
    slovar.append(('img',  un.split('/')[-1])) #запись в словарь
    k.write(t.content)
    k.close()
    df = df.append(dict(slovar), ignore_index=True)

df.to_csv('foto.csv', index=False, sep=';')


Почему пишется только первое значение? Ведь он же вложен в цикл
  • Вопрос задан
  • 700 просмотров
Решения вопроса 1
Big_Alex
@Big_Alex
молод и перспективен
а если запилить так :
сначала в цикле пишешь в словарь, а потом пишешь словарь в csv..
в коде будет примерно так..
with open('image/%s' % un.split('/')[-1], 'wb') as f:
        w = csv.writer(f)
        for item in a:
            w.writerow([item])
    f.close()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы