[英]Write Python variable to new cell in each column in CSV file
我想將BeautifulSoup與Python結合使用,以從動態網站中抓取數據。 一切都可以編譯,我可以正確獲取標記中的值以輸出並寫到csv中。 但是這里的問題是,不是將值寫到列的每一行,而是當我打開csv文件時,我看到我的代碼只將值寫到一列,但是在我的情況下,我有9列。 我不知道如何將變量中的值放到單獨的列中???
with open('myreport.csv','wb') as f:
thewriter = csv.writer(f, delimiter=',', quotechar=' ', quoting=csv.QUOTE_MINIMAL)
thewriter.writerow(['Toan','Van','Ngoai ngu','Vat li','Hoa hoc','Sinh hoc','Lich su','Dia li','GDCD'])
而我的代碼可以獲取我需要的所有標簽的價值。
for row in rows:
content1 = row.find_all('td')[1::2]
for content2 in content1:
print(content2.get_text())
thewriter.writerow([content2.get_text()])
我期望的csv文件結構是:
'Toan','Van','Ngoai ngu','Vat li','Hoa hoc','Sinh hoc','Lich su','Dia li','GDCD'
'8','7','2','5','4','10'
但是當編譯完成時,它返回:
'Toan','Van','Ngoai ngu','Vat li','Hoa hoc','Sinh hoc','Lich su','Dia li','GDCD'
'8'
'7'
'2'
'5'
'4'
'10'
問題在這里:
thewriter.writerow([content2.get_text()])
此代碼將一個單個值連續寫出。 您想要的是所有這些:
content1 = row.find_all('td')[1::2]
all_cells = [c.get_text() for c in content1]
thewriter.writerow(all_cells)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.