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

Python中将特定结构字典列表写入CSV文件的实现方法

Python中将特定结构字典列表写入CSV文件的实现方法

嘿,我来帮你搞定这个把特殊结构的字典列表转成目标CSV格式的需求~ 先理清楚你的核心需求:每个字典里的names和ages是等长的列表,需要把每个名字单独拆成一行,同时关联对应的年龄、部门和办公地点,对吧?

首先先把你提供的原始数据整理好(方便直接测试):

details = [
    {"names": ["ramu", "Ravi", "Naik"], "ages": [39, 40, 45], "department": "admin", "location": "Bangalore"},
    {"names": ["Kiran", "Kumar", "Joseph"], "ages": [35, 26, 52], "department": "IT", "location": "Hyderabad"},
    {"names": ["Rajesh", "Nakul"], "ages": [34, 40], "department": "Payroll", "location": "Chennai"},
    {"names": ["Mukesh", "Kundan", "Kishore"], "ages": [27, 33, 37], "department": "IT", "location": "Bangalore"}
]

接下来是具体的实现代码,用Python内置的csv模块就能轻松搞定,不需要额外安装第三方库:

import csv

# 定义输出的CSV文件名
output_file = "employee_details.csv"

# 定义CSV表头,完全匹配你要的格式
headers = ["Name", "Age", "Department", "Location"]

# 打开文件并写入数据,用with语句自动管理文件资源
with open(output_file, mode='w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    # 先写入表头行
    writer.writerow(headers)
    
    # 遍历每个包含部门/地点信息的字典
    for item in details:
        # 用zip把names和ages一一配对,确保每个名字对应正确的年龄
        for name, age in zip(item["names"], item["ages"]):
            # 组装当前行的所有数据
            row = [name, age, item["department"], item["location"]]
            # 写入一行到CSV
            writer.writerow(row)

print(f"CSV文件 {output_file} 已成功生成!")

关键细节说明:

  1. 表头匹配:严格按照你要的Name, Age, Department, Location顺序定义表头;
  2. 避免空行问题:newline=''参数是为了防止Windows系统下生成的CSV出现多余的空行;
  3. 数据配对准确性:用zip()函数把每个字典里的names和ages列表精准配对,确保名字和年龄不会错位;
  4. 编码兼容性:指定utf-8编码,能避免特殊字符乱码,跨Windows、Mac、Linux系统都能正常读取。

运行这段代码后,生成的CSV文件格式就和你示例里的完全一致啦~

备注:内容来源于stack exchange,提问作者Phalguna

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 18:39:34