【问题标题】:I am getting an unexpected output while exporting my dictionary to csv file in python将字典导出到 python 中的 csv 文件时出现意外输出
【发布时间】:2019-10-27 06:36:18
【问题描述】:

我正在通过 beautiful-soup 从表中获取数据,并希望将其输出粘贴到 csv 文件中。假设我想要从 1 到 10 的数据,但我的 csv 文件只显示最后一个值,即第 9 个。而且我的标题也在每个输出中重复输入。请查看我的代码并告诉我我错在哪里。 但是我的代码没有错误,但它在终端中以一种奇怪的方式生成数据,并且只打印 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')

【问题讨论】:

    标签: python python-3.x pandas beautifulsoup export-to-csv


    【解决方案1】:

    print(df)移出循环。这将防止反复打印标题。

    最后,在将 csv 写入文件时使用不同的文件模式。根据docsdf.to_csv(...)方法可以接受一个mode参数,默认为w

    模式:str

    • Python 写入模式,默认为“w”。

    因此,将模式更改为 else 之类的 a,它将打开文件以进行追加,而无需先截断它。

    df.to_csv(r'C:\Users\intel\Desktop\export_dataframe.csv',
              mode='a', index=False, encoding='utf-8')
    

    【讨论】:

    • 首先非常感谢@smac89,但只有一件事有效,就是将我的文件写入 csv。但它一次又一次地在 csv 中打印标题。能否提供代码...
    猜你喜欢
    • 2018-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    • 1970-01-01
    • 2022-08-05
    • 1970-01-01
    • 2014-07-28
    • 1970-01-01
    相关资源
    最近更新 更多