Python列表转换为csv文件

Python列表转换为csv文件,python,python-3.x,list,csv,Python,Python 3.x,List,Csv,我创建了一个scraper,使用for循环从网站获取信息,并为每个循环创建了一个列表。 结果是我所期望的,但我很难将这些信息全部放入csv文件中。我的意图是创建4行,其中对应的url、位置等将匹配,但我可能设置循环的方式使其更难 我以为下面的语法会起作用,但是没有。它只打印同一行中的所有URL。 我打印了所有的信息,但它们仍然在同一行 with open('trademe.csv', 'w', newline='') as f: writer = csv.writer(f) wr

我创建了一个scraper,使用for循环从网站获取信息,并为每个循环创建了一个列表。 结果是我所期望的,但我很难将这些信息全部放入csv文件中。我的意图是创建4行,其中对应的url、位置等将匹配,但我可能设置循环的方式使其更难

我以为下面的语法会起作用,但是没有。它只打印同一行中的所有URL。 我打印了所有的信息,但它们仍然在同一行

with open('trademe.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['URL', 'Price', 'Location', 'Flatmates'])
    writer.writerow([link, price, loc, mates])
顺便说一句,这是到目前为止的代码

trademe = urlopen(url)
trademe_html = soup(trademe.read(), "html.parser")
trademe.close()

link=[]
for i in trademe_html.find_all('div', attrs={'class' : 'dotted'}):
    link.append('URL: www.trademe.co.nz'+i.a['href'])
    print('URL: www.trademe.co.nz'+i.a['href'])

price=[]
for i in trademe_html.find_all('div', attrs={'class' : 'flatmates-list-view-card-price'}):
    price.append('Price and availability: ' + i.text.strip())
    print('Price and availability: ' + i.text)

loc=[]
for i in trademe_html.find_all('div', attrs={'class' : 'flatmates-card-subtitle'}):
    loc.append('Location: ' + i.text)
    print('Location: ' + i.text)
    
mates=[]
for i in trademe_html.find_all('div', attrs={'class' : 'flatmates-card-existing-flatmates'}):
    mates.append(i.text.strip())
    print(i.text)
  • 将数据插入数据框中
  • pandas

Pandas使将数据帧导出到带有标题的csv变得非常容易

欢迎使用SO。您已将换行符设置为
'
。应该是
\n
?嘿@ewong谢谢!我忘了提到我尝试设置换行符='\n',但没有成功。我尝试在循环结束时添加\n,如果我在IDE中打印它,它就会工作。但是,它在csv文件上不起作用。嗨@topgunner,谢谢你回答我的问题!我确实使用了熊猫数据帧,但仍然无法达到预期的结果。下面的代码将所有信息写入相应的头中,但全部写入同一行字段=['URL'、'Price'、'Location'、'Flatmates']行=[link,Price,loc,mates],并将open('agalu.csv'、'w',newline='\n')作为csv_文件:csvwriter=csv.writer(csv_文件)csvwriter.writerow(字段)csvwriter.writerows(行)