如何用Python遍历嵌套JSON对象并将所有列表元素以表格形式完整展示
解决Python列表转表格只显示最后一个元素的问题
嘿,我一眼就看出问题所在啦!你原来的代码里,TableData = [ [item.get('access'),item.get('visibility')] ]这行每次循环都会重新赋值,直接覆盖之前的数据,最后自然只剩最后一个条目。正确的做法是先初始化一个空列表,然后在循环里把每一行数据追加进去,而不是重新赋值。
下面给你两种可行的解决方案:
方案1:纯Python实现简单表格(无需额外库)
这个方案用原生Python的字符串格式化实现对齐,不需要安装任何第三方库:
# 你的原始数据 data = { "preference": [ {"access":"true1","visibility":"false1"}, {"access":"true2","visibility":"false2"}, {"access":"true3","visibility":"false3"} ] } # 初始化空列表存储所有表格行数据 table_data = [] # 遍历每个preference对象,提取数据追加到列表 for item in data['preference']: table_data.append([item.get('access'), item.get('visibility')]) # 打印表头和分隔线 print("| Access | Visibility |") print("|----------|------------|") # 格式化打印每一行,保证对齐 for row in table_data: print(f"| {row[0]:<8} | {row[1]:<10} |")
运行后输出的表格效果:
| Access | Visibility | |----------|------------| | true1 | false1 | | true2 | false2 | | true3 | false3 |
方案2:用PrettyTable库生成美观表格(推荐)
如果想要更专业、整齐的表格样式,可以用prettytable第三方库,它会自动处理对齐和边框:
首先安装库:
pip install prettytable
然后使用以下代码:
from prettytable import PrettyTable # 你的原始数据 data = { "preference": [ {"access":"true1","visibility":"false1"}, {"access":"true2","visibility":"false2"}, {"access":"true3","visibility":"false3"} ] } # 创建表格对象并设置表头 table = PrettyTable(["Access", "Visibility"]) # 遍历每个条目,添加到表格中 for item in data['preference']: table.add_row([item.get('access'), item.get('visibility')]) # 打印最终表格 print(table)
运行后输出的美观表格:
+---------+------------+ | Access | Visibility | +---------+------------+ | true1 | false1 | | true2 | false2 | | true3 | false3 | +---------+------------+
这样就能完整展示所有元素的表格啦!
内容的提问来源于stack exchange,提问作者imraz banu
相关产品推荐
相关产品推荐

