You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用writerow函数导出列表时仅输出最后一条数据的问题

问题原因与修复方案

问题根源:缩进错误

你的代码中,print(name,mst)和writer.writerow(...)这两行没有缩进在for循环的代码块内。

Python靠缩进区分代码块归属:你的for循环只是不断覆盖name和mst的变量值,但并没有在每次遍历企业时执行打印和写入操作。等循环跑完,name和mst只保留最后一家企业的信息,此时才执行一次打印和写入,自然只会导出最后一条数据。

修正后的代码

将打印和写入代码缩进,放入for循环内部即可:

import csv

with open('names.csv', 'w', newline='', encoding="utf-8") as file:
    header = ['Name', 'Tax code']
    writer = csv.DictWriter(file, delimiter=',', lineterminator='\n', fieldnames=header)
    writer.writeheader()
    
    for firm in firms: 
        name = firm.find('h3', class_='company-name').text
        mst = firm.find('p', class_=False).get_text(strip=True).split('-')[0].split(':')[1]
        print(name, mst)
        writer.writerow({header[0]: name, header[1]: mst})

额外提示

  • 确认代码开头已经导入csv模块(如果之前遗漏的话)
  • 修正缩进后,每遍历一家企业就会立即执行打印和写入,所有19条数据都会被写入CSV文件

内容的提问来源于stack exchange,提问作者Tann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:57:54