亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

初學者。只是沒有發現錯誤。python 導出到 CSV

初學者。只是沒有發現錯誤。python 導出到 CSV

開滿天機 2024-01-15 21:37:21
我必須編寫一個腳本來將表寫入 CSV 文件中。由于我還是編程初學者,我只是找不到錯誤。使用“#print(rows_data)”,數據將顯示在控制臺中。但不幸的是不在空的 CSV 文件中。也許有人有提示?url = browser.page_source #html_content = url.textsoup = BeautifulSoup(url, "lxml")table_aufderseite = []roh1_table = soup.find(id="TransactionsContent")#"span", attrs={})# es gibt zwei Tabellen die leider identisch sind und keine unique ID haben. ich brauche die zweite...for table_list in range(2):    table_aufderseite = roh1_table.find_all('table')gdp_table = table_aufderseite[2] # ok richtige Tabelle jetzt, das ist gdp_table.table_rows = gdp_table.find_all('tr')for tr in table_rows:    td = tr.find_all('td')    rows_data = [tabdata.text.strip().replace("\t", "").replace("\n", "") for tabdata in td]    #    print(rows_data)    with open('bahncardkreditkarten-umsatz.csv', 'w', newline='') as filechen:        writer = csv.writer(filechen)        writer.writerows(rows_data)謝謝
查看完整描述

2 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

的參數writer.writerows()應該是一個二維列表,但rows_data只有一行。


您可以將所有行收集到列表列表中。然后在循環完成后,調用writerows()所有內容。


all_rows = []

for tr in table_rows:

    td = tr.find_all('td')

    rows_data = [tabdata.text.strip().replace("\t", "").replace("\n", "") for tabdata in td]

    all_rows.append(rows_data)

    


with open('bahncardkreditkarten-umsatz.csv', 'w', newline='') as filechen:

    writer = csv.writer(filechen)

    writer.writerows(all_rows)


查看完整回答
反對 回復 2024-01-15
?
汪汪一只貓

TA貢獻1898條經驗 獲得超8個贊

您每次通過循環都會覆蓋您的行。假設您正在讀取的表中的最后一行是空的,因此文件最終為空


在這個部分:


for tr in table_rows:

    td = tr.find_all('td')

    rows_data = [tabdata.text.strip().replace("\t", "").replace("\n", "") for tabdata in td]

    

#    print(rows_data)


    with open('bahncardkreditkarten-umsatz.csv', 'w', newline='') as filechen:

        writer = csv.writer(filechen)

        writer.writerows(rows_data)

您將循環遍歷每個表行,對于每一行,您重新打開 .csv 文件并從頭開始寫入。相反,您應該打開文件一次,然后在打開文件后循環遍歷表行,每次通過循環添加新數據,或者將行收集到一個數組中,然后通過一次調用 writerows 將它們寫出。


或者,您可以使用打開文件'a'而不是'w'附加到文件;然而,這似乎不必要地低效和混亂。


查看完整回答
反對 回復 2024-01-15
  • 2 回答
  • 0 關注
  • 170 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號