如何在while循环中以时间戳为键填充空字典并存储网站数据
解决循环中字典添加键值对的问题
嘿,我发现你在尝试用while循环每秒收集网站数值并存入字典时踩了个小坑——字典根本没有append()方法,这可是列表专属的操作哦!
先看看你原来的代码(我补上了缺失的导入语句,能更清晰地看到问题):
import time import datetime as dt d = {} x=1 while x < 9: time.sleep(1) d.append(dt.datetime.now().strftime("%Y-%m-%d %H:%M:%S")) #this is key d.append(website_var) #this is value x = x+1 print(d)
要给字典添加键值对,正确的方式是直接通过字典[键] = 值的形式赋值,把你想要的时间戳作为键,对应的网站数值作为值就行。下面是修正后的代码:
import time import datetime as dt d = {} x = 1 # 这里先模拟网站数值,你可以替换成实际从网站获取数值的代码 website_var = 77.60 while x < 9: time.sleep(1) # 生成当前时间作为字典的键 current_timestamp = dt.datetime.now().strftime("%Y-%m-%d %H:%M:%S") # 给字典添加新的键值对 d[current_timestamp] = website_var # 模拟网站数值的变化,实际场景替换为获取网站数值的逻辑 website_var += 0.05 x += 1 print(d)
运行这段代码后,你就能得到和期望一致的字典了,比如:
{ "2024-05-20 14:35:00": 77.60, "2024-05-20 14:35:01": 77.65, "2024-05-20 14:35:02": 77.70, ... }
记得把代码里模拟website_var的部分,替换成你实际从网站获取数值的代码哦!
内容的提问来源于stack exchange,提问作者Ross Demtschyna
相关产品推荐
相关产品推荐

