python把字典保存到文件_将Python字典保存到文件中,并定期更新它

我觉得这是一个非常简单的问题,这里有很多类似的问题,但我还是不知道如何得到我想要的。我正在使用远程设备,当它们联机时可以连接到它们。我想要一个记录设备最近正常运行时间的文件,如下所示:# device ID ......... last seen online

{'deviceID1':'Wed Nov 08 2017 06:11:27 PM',

'deviceID2':'Wed Nov 08 2017 06:11:27 PM',

'deviceID3':'Tues Nov 07 2017 03:47:01 PM'}

我把它存储在一个json文件中json.dumps文件存储数据和json.load文件去看它。我的代码遵循以下步骤:“ping所有设备ID”、“检查输出”和“将结果写入文件”。但是每次我这样做,那些在线的和现在不在线的设备的值都会被覆盖。与上面不同,我得到的是:

^{pr2}$

当我在2017年11月8日星期三下午6:11:27检查时,设备3不在线。但我想在更新在线设备值的同时保留这个值。我如何将这个字典/数据保存在一个文件中,并且每次都为同一组唯一的设备ID更新它?这个appending-data-to-a-json-file-in-python">question最接近,但这是关于附加条目的,我想更新已经存在的键的值。谢谢。在

相关代码:def write_to_file(data):

with open(STATUS_FILE, 'w') as file:

file.write(json.dumps(data))

def create_device_dictionary(deviceIDs):

devices = {}

for i in range(0, len(deviceIDs)):

devices[deviceIDs[i]] = []

return devices

def check_ping_output(cmd_output_lines,devices):

for i, line in enumerate(cmd_output_lines):

device_id = line.strip().strip(':')

# if the device pinged back...

if 'did not return' not in cmd_output_lines[i+1]:

#current UNIX time

human_readable_time = time.strftime(

'%a %b %d %Y %I:%M:%S %p',

time.gmtime(time.time())

)

devices[device_id].append(human_readable_time)

else:

# do something here? I want the device ID to be in the file even if it's never appeared online

pass

return devices

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值