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

如何用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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 09:12:39