[英]Why am I getting a string instead of a dictionary while reading a csv file in Python?
[英]I am getting an unexpected output while exporting my dictionary to csv file in python
我正在通過 beautiful-soup 從表中獲取數據,並想將其 output 粘貼到 csv 文件中。 假設我想要從 1 到 10 的數據,但我的 csv 文件只顯示最后一個值,即第 9 個。 而我的 header 也在每個 output 中重復輸入。 請查看我的代碼並告訴我我錯在哪里。 但是我的代碼沒有錯誤,但它在終端中以一種奇怪的方式生成數據,並且只打印 csv 文件中數據的最后一個值。 : (
from bs4 import BeautifulSoup
import requests
from pandas import DataFrame
max = 100500
i = 100002
while i < max:
page = requests.get(
"https://rajasthanpuc.in/P_test.aspx?Spuc=P379RJ14" + str(i) + "&flag=1")
i = i + 1
soup = BeautifulSoup(page.content, 'html.parser')
num = soup.find(id='Cmobile_lbl').get_text()
num2 = soup.find(id='Vechno_lbl').get_text()
num3 = soup.find(id='Pucc_lbl').get_text()
num4 = soup.find(id='customername_lbl').get_text()
num5 = soup.find(id='Regyear_lbl').get_text()
num6 = soup.find(id='vehtype_lbl').get_text()
num7 = soup.find(id='EngType_lbl').get_text()
num8 = soup.find(id='Make_lbl').get_text()
num9 = soup.find(id='Model_lbl').get_text()
num10 = soup.find(id='Fuel_lbl').get_text()
num11 = soup.find(id='TestDate_lbl').get_text()
num12 = soup.find(id='TestTime_lbl').get_text()
num13 = soup.find(id='validdate_lbl').get_text()
num16 = soup.find(id='licence_lbl').get_text()
num17 = soup.find(id='txtResult').get_text()
# print(text)
df = DataFrame({
'numbers______': [num],
'vehicle_no___': [num2],
'fuel___': [num10],
'Pucc___': [num3],
'regn_________': [num5],
'model________________': [num9],
'name_________________': [num4]
})
print(df)
df.to_csv(r'C:\Users\intel\Desktop\export_dataframe.csv',
index=False, encoding='utf-8')
將print(df)
循環。 這將防止反復打印 header。
最后,在將 csv 寫入文件時使用不同的文件模式。 根據文檔, df.to_csv(...)
方法可以接受mode
參數並默認為w
。
模式:str
- Python 寫入模式,默認為 'w'。
因此,將模式更改為 a 之類a
其他模式,它將打開文件進行追加,而無需先截斷它。
df.to_csv(r'C:\Users\intel\Desktop\export_dataframe.csv',
mode='a', index=False, encoding='utf-8')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.