无法向CSV多列写入数据求助:列表数据全部挤入同一列
解决CSV写入时所有数据集中在同一列的问题
你的问题根源有两个:
- 表头写法错误:你把所有表头用分号拼接成单个字符串放进列表,导致CSV仅识别出一列表头,后续数据自然全部挤在同一列
- 表头包含
salary字段,但all_list里没有对应的薪资数据列表,字段数量不匹配
修正后的代码
from itertools import zip_longest import csv # 请确保已定义salary_list,若不需要薪资列则删除该元素及表头对应项 all_list = [job_titles_list, company_list, locations_list, skills_list, salary_list] ziped = zip_longest(*all_list) with open('jobs.csv', 'w', newline='') as file: # 表头拆分为独立列表元素,每个元素对应一列 writer = csv.writer(file) # 若需用分号作为分隔符,改为:writer = csv.writer(file, delimiter=';') writer.writerow(["Job Title", "Company Name", "Location", "Skills", "salary"]) writer.writerows(ziped) # with上下文管理器会自动关闭文件,无需手动调用file.close()
关键修正点说明
- 表头拆分:将表头从单个拼接字符串改为独立的列表元素,让csv.writer能识别出多列
- 字段匹配:保证表头字段数量和
all_list中的数据列表数量一致,要么补充薪资数据,要么删除表头的salary项 - 优化文件处理:使用
newline=''避免Windows系统下写入CSV出现空行;依赖with语句自动关闭文件,无需手动操作
内容的提问来源于stack exchange,提问作者Abdullah Kassar
相关产品推荐
相关产品推荐

