【问题标题】:Is there a reason that csv.DictWriter will not input a value?csv.DictWriter 不会输入值是否有原因?
【发布时间】:2021-02-23 21:12:06
【问题描述】:

我正在构建一个网络抓取工具,用于检索主题标签和与该主题标签关联的两个值。然后它将信息放入 csv 文件中。

我遇到的问题是将为主题标签创建一个单元格,但不会输入标签本身。

with open('Test.csv', 'w', newline='')as csvfile:
    fieldnames = ['Tags', 'value1', 'value2']
    info = csv.DictWriter(csvfile, fieldnames=fieldnames)
    info.writeheader()

    for i in range(1, 3):

        tags = soup.find_all('span', class_='tag')[i].get_text()
        tags = tags.replace('#', '')
        time.sleep(2)

        value1 = soup.find_all('span', class_="value1")[i].get_text()
        time.sleep(2)

        value2 = soup.find_all('span', class_="value2")[i].get_text()

        info.writerow({'Tags': tags, 'value1': value1, 'value2': value2})
        #there is a problem with tags. They are not created in the csv file, it's just a blank space
        print(tags, ' ', value1, ' ', value2)

其他一切正常,甚至打印语句也显示了所有信息。

【问题讨论】:

    标签: python csv web-scraping


    【解决方案1】:

    在这一行:

    info.writerow({'Tags': tags, 'value1': value1, 'value2': value2})
    

    value1value2 这两个变量没有被引用。也许你想要的是

    info.writerow({'Tags': tags, 'value1': viewers, 'value2': rooms})
    
    

    这也解释了为什么您的 print 语句运行良好,因为您在其中使用了 viewersrooms 变量。

    但我觉得奇怪的是你没有收到任何NameError 错误...

    【讨论】:

    • 谢谢,我没有收到名称错误,因为我编辑了要发布的代码。我只是没有很好地编辑代码。
    猜你喜欢
    • 2016-12-25
    • 2019-10-23
    • 2013-01-18
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    • 2023-03-27
    • 2021-08-25
    • 1970-01-01
    相关资源
    最近更新 更多