0

0

Python 字典转置:纯原生实现 CSV 表格格式化输出

心靈之曲

心靈之曲

发布时间:2026-02-27 11:49:06

|

785人浏览过

|

来源于php中文网

原创

Python 字典转置:纯原生实现 CSV 表格格式化输出

本文介绍如何不依赖 numpy 或 itertools,仅用 python 原生语法将嵌套字典「按键转置」为 csv 行列结构,适用于导出为表格、生成报告等场景。

本文介绍如何不依赖 numpy 或 itertools,仅用 python 原生语法将嵌套字典「按键转置」为 csv 行列结构,适用于导出为表格、生成报告等场景。

在数据处理中,常遇到类似「外层键为列索引、内层键为行标题、值为单元格内容」的嵌套字典结构。若需将其转换为标准 CSV 表格(即行列互换),本质是执行一次字典转置(dictionary transpose):原结构中 data_dict[outer_key][inner_key] = value,目标结构应变为以 inner_key 为第一列(行头),各 outer_key 为后续列头,对应 value 按顺序填充。

以下是一个简洁、可读性强、完全基于 Python 内置语法的实现方案:

data_dict = {
    1: {'One': 110, 'Two': 210, 'three': 310},
    2: {'One': 120, 'Two': 220, 'three': 320},
    3: {'One': 130, 'Two': 230, 'three': 330}
}

# 步骤 1:初始化临时字典,首行为列索引(空字符串 + 外层键列表)
temp_dict = {"''": list(data_dict.keys())}

# 步骤 2:遍历每个内层字典,按 inner_key 聚合所有 outer_key 对应的 value
for inner_dict in data_dict.values():
    for key, value in inner_dict.items():
        temp_dict.setdefault(key, []).append(value)

# 步骤 3:按需输出 CSV 格式(逗号分隔,无引号转义;如需严格 CSV,请用 csv 模块)
for row_key, row_values in temp_dict.items():
    print(row_key, *row_values, sep=",")

输出结果:

'',1,2,3
One,110,120,130
Two,210,220,230
three,310,320,330

⚠️ 注意事项:

Getsound
Getsound

基于当前天气条件生成个性化音景音乐

下载

立即学习Python免费学习笔记(深入)”;

  • 该方法假设所有内层字典具有一致的键集合(即每行字段对齐)。若存在缺失键(如某 outer_key 缺少 'Three'),需提前补全(例如用 None 或默认值),否则会导致列错位;
  • ''.join() 或 print(..., sep=",") 仅适用于简单 ASCII 数据;若字段含逗号、换行符或双引号,务必改用标准 csv 模块(如 csv.writer)以保证合规性;
  • setdefault(key, []) 是关键技巧——它避免重复检查键是否存在,兼具初始化与追加功能,比 if key not in d: d[key] = [] 更简洁高效。

? 进阶提示: 若需保存为文件而非打印,只需将最后循环替换为:

with open("output.csv", "w", newline="") as f:
    writer = csv.writer(f)
    for row_key, row_values in temp_dict.items():
        writer.writerow([row_key] + row_values)

此方案零依赖、逻辑清晰、易于调试,是处理中小规模字典转置任务的推荐实践。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

17

2026.02.03

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

833

2023.08.22

常见的编码方式
常见的编码方式

常见的编码方式有ASCII编码、Unicode编码、UTF-8编码、UTF-16编码、GBK编码等。想了解更多编码方式相关内容,可以阅读本专题下面的文章。

637

2023.10.24

a和A对应的ASCII码数值
a和A对应的ASCII码数值

a的ascii码是65,a的ascii码是97;ascii码表中,一个字母的大小写数值相差32,一般知道大写字母的ascii码数值,其对应的小写字母的ascii码数值就算出来了,是大写字母的ascii码数值“+32”。想了解更多相关的内容,可阅读本专题下面的相关文章。

2216

2024.10.24

Golang 实际项目案例:从需求到上线
Golang 实际项目案例:从需求到上线

《Golang 实际项目案例:从需求到上线》以真实业务场景为主线,完整覆盖需求分析、架构设计、模块拆分、编码实现、性能优化与部署上线全过程,强调工程规范与实践决策,帮助开发者打通从技术实现到系统交付的关键路径,提升独立完成 Go 项目的综合能力。

18

2026.02.26

Golang Web 开发路线:构建高效后端服务
Golang Web 开发路线:构建高效后端服务

《Golang Web 开发路线:构建高效后端服务》围绕 Go 在后端领域的工程实践,系统讲解 Web 框架选型、路由设计、中间件机制、数据库访问与接口规范,结合高并发与可维护性思维,逐步构建稳定、高性能、易扩展的后端服务体系,帮助开发者形成完整的 Go Web 架构能力。

17

2026.02.26

Golang 并发编程专题:掌握多核时代的核心技能
Golang 并发编程专题:掌握多核时代的核心技能

《Golang 并发编程专题:掌握多核时代的核心技能》系统讲解 Go 在并发领域的设计哲学与实践方法,深入剖析 goroutine、channel、调度模型与并发安全机制,结合真实场景与性能思维,帮助开发者构建高吞吐、低延迟、可扩展的并发程序,全面提升多核时代的工程能力。

16

2026.02.26

batoto漫画官网入口与网页版访问指南
batoto漫画官网入口与网页版访问指南

本专题系统整理batoto漫画官方网站最新可用入口,涵盖最新官网地址、网页版登录页面及防走失访问方式说明,帮助用户快速找到batoto漫画官方平台,稳定在线阅读各类漫画内容。

431

2026.02.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 4.6万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号