Flask 应用无法正确显示来自 Firebase 的数据

问题描述 投票:0回答:1

我在 Flask Web 应用程序上显示数据时遇到问题。 我将 RPi 连接到三个传感器:称重传感器、超声波和 PIR。每次检测到运动时,读数都会发送到 Flask Web 应用程序以显示实时读数。 此外,数据还存储到 Firebase 实时数据库中。

我有一个功能来获取每天的最新读数,除了项目之外的所有内容都正常显示,这基本上是一个整数计数器。

我收到错误:

据我了解,项目在某种程度上是字典,但我无法找出解决方案。

获取每日功能的最新条目:

def fetch_latest_data_each_day():
    ref = db.reference('Smart Bin')
    all_data = ref.get()
    latest_entries = {}

    if all_data:
        for key, value in all_data.items():
            date_part = key.split('_')[0] 
            if date_part not in latest_entries or key > latest_entries[date_part]['timestamp']:
                # Parse and format the timestamp before storing it
                timestamp = datetime.strptime(key, '%Y-%m-%d_%H-%M-%S')
                formatted_timestamp = timestamp.strftime('%Y-%m-%d at %H:%M:%S')
                latest_entries[date_part] = {
                    'timestamp': formatted_timestamp,  # Store the formatted timestamp
                    'data': value
                }
    return latest_entries

index.html

<div class="historical-data">
            <h1>Historical Data</h1>
            {% for date, info in latest_entries.items() %}
                <div class="historical-entry">
                    <h2>Date: {{ date }}</h2>
                    <div class="data">
                        <strong>Time of latest record:</strong> <span>{{ info.timestamp }}</span>
                    </div>
                    <div class="data">
                        <strong>Distance:</strong> <span>{{ info.data.distance }} cm</span>
                    </div>
                    <div class="data">
                        <strong>Weight:</strong> <span>{{ info.data.weight }} grams</span>
                    </div>
                    <div class="data">
                        <strong>Items:</strong> <span>{{ info.data.items }}</span>
                    </div>
                </div>
            {% endfor %}
        </div>

最新条目数据示例: 最新条目数据结构:{'2024-06-22': {'timestamp': '2024-06-22 at 21:04:57', 'data': {'distance': 120, 'items': 2, '权重': 0}}, '2024-06-23': {'时间戳': '2024-06-23 21:27:32', '数据': {'距离': 170.8, '项目': 2, '权重': 0}}, '2024-06-24': {'时间戳': '2024-06-24 at 01:43:02', '数据': {'距离': 170.47, '项目': 2, '权重': 0}}, '2024-06-28': {'时间戳': '2024-06-28 11:50:32', '数据': {'距离': 171.52, “物品”:2,“重量”:15587}}}

附上Firebase结构和显示错误的图片。

有什么想法吗? 先谢谢大家了!

enter image description here

firebase_data_structure

我尝试在第一个索引上索引项目 -> info.data.items[0] -> 我什么也没得到(网页上为空白)

python html firebase flask raspberry-pi
1个回答
0
投票

因为您正在创建另一个字典,您很可能会意外地像这样构建(嵌套和多个

data
键值对):

{
    "timestamp": "2024-06-24",
    "data": {
        "timestamp": "2024-06-24 at 01:43:02",
        "data": {
            "distance": 170.47,
            "items": 2,
            "weight": 0
        }
    }
}

所以第一个调整就是字典的访问路径和访问key的方式:

info['data']['data']['weight']

© www.soinside.com 2019 - 2024. All rights reserved.