为什么在使用writerow函数时只导出列表中的最后一个值?



我有一个从抓取网站检索到的19家企业的列表,如下所示:

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)
CÔNG TY CỔ PHẦN ĐẦU TƯ THƯƠNG MẠI LUCKY HOÀNG MINH  0110306061 
CÔNG TY CỔ PHẦN SUFAM VIỆT NAM  0110306304 
CÔNG TY TNHH TMDV THT VIỆT NAM  0110306449 
CÔNG TY CỔ PHẦN  THƯƠNG MẠI KIẾN TRÚC NỘI THẤT THIÊN ANH LUXURY  0110305942 
CÔNG TY TNHH TMDV BLUESEA TRAVEL  0110305614 
CÔNG TY TNHH KINH DOANH THƯƠNG MẠI LTD  0110306495 
CÔNG TY TNHH DỊCH VỤ THƯƠNG MẠI IN VIỆT HÀ  0110305621 
CÔNG TY TNHH  CÔNG NGHỆ KỶ NGUYÊN CODE  0110306375 
CÔNG TY CỔ PHẦN THỜI TRANG THIẾT KẾ CELAS  0110306424 
CÔNG TY CỔ PHẦN ĐẦU TƯ HD SOLUTIONS  0110306431 
CÔNG TY CỔ PHẦN CƠ KHÍ ĐẠI NAM VINA  0110306294 
CÔNG TY TNHH NỘI THẤT GEN Z  0110306103 
CÔNG TY CỔ PHẦN TƯ VẤN ĐẦU TƯ VÀ XÂY DỰNG HACONS  0110306311 
CÔNG TY TNHH MINKY MOM BABY  0110306079 
CÔNG TY TNHH THƯƠNG MẠI PHONG VY  0110305981 
CÔNG TY TNHH THƯƠNG MẠI VÀ CÔNG NGHỆ QUANG MINH VIỆT NAM  0110306350 
CÔNG TY TRÁCH NHIỆM HỮU HẠN PHÚ HƯNG TÂM  0110306336 
CÔNG TY TNHH CƠ ĐIỆN NAM PHÁT  0110305999 
CÔNG TY TNHH THƯƠNG MẠI AN VƯỢNG PHÁT  0110305974

但是当我尝试使用写行导出数据到excel时,我得到的唯一值是关于最后一个值(CÔNG TY TNHH THƯƠNG MẠI AN VƯỢNG PHÁT 0110305974):

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})

您的writer.writerow()需要在for循环

最新更新