如何从range中向tabulate数组添加多组数据并统一打印
整合数据生成单张完整表格
原代码每次循环都会重新创建表格并打印,导致输出98个独立的单条数据表格。只需调整逻辑,先初始化统一的表头,再批量添加所有数据行,最后一次性打印即可:
# 初始化表格,先设置表头 table = [['Title', 'Description', 'Mileage', 'Current Bid']] # 遍历所有拍卖数据,逐个添加数据行 for auction in r1["auctions"]: # 格式化出价为带千分位的字符串 formatted_bid = "{:,}".format(auction["current_bid"]) # 构造当前行数据并追加到表格 table.append([ auction["title"], auction["sub_title"], auction["mileage"], formatted_bid ]) # 一次性打印完整的汇总表格 print(tabulate(table, headers='firstrow', tablefmt='fancy_grid'))
核心修改说明:
- 将表格初始化移到循环外部,只创建一次表头,避免重复生成表格结构
- 直接遍历
r1["auctions"]列表,无需通过索引取值,代码更简洁且适配数据数量变化 - 循环内仅向表格追加数据行,不执行打印操作
- 循环结束后调用一次
print,输出包含所有数据的完整表格
额外优化:
- 调整变量名使其更具语义(如
formatted_bid替代numbers),提升代码可读性 - 移除硬编码的
range(98),自动适配auctions列表的实际长度,避免数据数量变动时出错
内容的提问来源于stack exchange,提问作者user19422024
相关产品推荐
相关产品推荐

