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

w1e3prcc  于 2023-04-03  发布在  其他
关注(0)|答案(1)|浏览(132)

我有一个列表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 THNG M I AN VNG 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})
xoefb8l8

xoefb8l81#

您的writer.writerow()需要位于for循环内

相关问题