You need to enable JavaScript to run this app. Python如何提取Firebase返回的JSON值生成列表填充QTableWidget?
优惠活动
大模型
产品
解决方案
定价
更多

Python如何提取Firebase返回的JSON值生成列表填充QTableWidget?

解决方案

1. 核心错误修正

你不需要用json.dumps把字典转成字符串再拆分,usuario.val()本身就是可直接操作的Python字典对象,直接提取值即可。为了保证取值顺序完全符合你的预期,不要直接用dict.values()(依赖Python版本和返回数据的key顺序),最好显式指定取值的key顺序,避免顺序错乱。

2. 完整实现代码

import json
from PyQt5.QtWidgets import QTableWidget, QTableWidgetItem

# 首先显式定义你需要的取值顺序,和你要求的列表下标一一对应
KEY_ORDER = ["data", "destino", "nome", "origem", "taxa", "valordestino", "valororigem"]

usuarios = db.child("operacoes").get()
# 假设你已经初始化了QTableWidget对象,名字为table_widget
# 先设置表格的行数和列数
table_widget.setColumnCount(len(KEY_ORDER))
# 可选设置表头,不需要可以删掉
table_widget.setHorizontalHeaderLabels(KEY_ORDER)

row = 0
for usuario in usuarios.each():
    data_dict = usuario.val()
    # 按指定顺序提取值生成列表
    teste = [data_dict[key] for key in KEY_ORDER]
    # 插入QTableWidget的逻辑
    table_widget.insertRow(row)
    for col, value in enumerate(teste):
        # 所有值转字符串显示,你可以按需格式化数值类型
        table_widget.setItem(row, col, QTableWidgetItem(str(value)))
    row += 1

3. 补充说明

  • 如果你确认运行环境是Python3.7+,且Firebase返回的key顺序和你要求的顺序完全一致,也可以直接用teste = list(data_dict.values())获取值列表,但显式指定KEY_ORDER的兼容性和稳定性更高
  • 数值类型的字段(taxa、valordestino等)可以按需做精度格式化再插入表格,比如保留2位小数避免显示过长的浮点尾数

内容的提问来源于stack exchange,提问作者user2348911

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 04:06:04