在Python中无需外部.txt文件即可保存数据

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

对于某些情况:我有一个温室,它有一个传感器,每分钟读取一次温度,并将其添加到临时数组中一个小时。一小时后,取数组的平均值,并将该值存储在每小时数组中,该数组用于构建图表并每 24 小时向我发送一封电子邮件。

当我让系统运行 24 小时时,它会按预期发送电子邮件。然而,有时当我需要对系统进行物理更改时,我必须关闭系统才能执行此操作。这会导致临时分钟和每小时数组在重新启动时丢失。

我想出的解决方案是将数据存储在两个不同的.txt 文件中。我知道这会起作用,因为我目前正在这样做来跟踪经过的分钟数。但是,我真的不想继续添加一堆文本文件来存储数据。还有别的办法吗?

python data-storage
1个回答
0
投票

您无需为每个单独的变量创建文本文件,只需将信息存储为

json
并将其加载为
dict

import json
from   datetime import datetime as dt
from   random   import randint


#represents your temperature function
def get_ftemp() -> int:
    return randint(-20,120)


#take readings and save data
def set_sample() -> None:
    with open('sensors.json', 'w') as file:
    
        #sensor data for this sample
        sample = dict(
            timestamp = dt.timestamp(dt.now()),
            temp      = get_ftemp()
        )
    
        #overwrite file with updated sample
        file.write(json.dumps(sample))
    
    
def get_sample() -> dict:
    sample = {}
    
    #get sample as dict
    with open('sensors.json', 'r') as file:
        sample = json.loads(file.read())
        
    return sample
© www.soinside.com 2019 - 2024. All rights reserved.