簡體   English   中英

將python變量寫入CSV文件中每一列的新單元格

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM