【发布时间】:2022-01-22 00:16:25
【问题描述】:
我一直在开发 Telegram 机器人,为不同加油站的汽油和柴油价格提供服务。我每小时下载一个带有更新价格的 JSON 文件,并将它们放入这样的字典中:
import json
with open('output1.json', encoding='utf-8') as f:
data = json.loads(f.read())
f.close()
def rotul_2668():
return (data['ListaEESSPrecio'][37]['Rótulo'])
def direccio_2668():
return (data['ListaEESSPrecio'][37]['Dirección'])
def benzina_2668():
return (data['ListaEESSPrecio'][37]['Precio Gasolina 95 E5'])
def dieselA_2668():
return (data['ListaEESSPrecio'][37]['Precio Gasoleo A'])
def dieselB_2668():
return (data['ListaEESSPrecio'][37]['Precio Gasoleo B'])
def dieselPremium_2668():
return (data['ListaEESSPrecio'][37]['Precio Gasoleo Premium'])
def GLP_2668():
return (data['ListaEESSPrecio'][37]['Precio Gases licuados del petróleo'])
ciutadella_2668 = {
'rotul' : rotul_2668(),
'direccio' : direccio_2668(),
'benzina' : benzina_2668(),
'dieselA' : dieselA_2668(),
'dieselB' : dieselB_2668(),
'dieselPremium' : dieselPremium_2668(),
'GLP': GLP_2668()
}
然后从外部函数调用字典条目。到目前为止,一切都运行良好,直到需要更新字典并提供新的价格,而这永远不会。知道为什么会这样吗?可能是因为存储在 var "data" 中的数据永远不会重新加载?如果是这样,可能的解决方案是什么?
感谢您的宝贵时间
【问题讨论】:
-
不需要
f.close() -
代码的哪一部分每 1 小时运行一次,如何运行?
-
哪个逻辑应该更新字典?运行脚本并完成执行后,它不会检查更新。
-
如果你从某个网址下载你的json文件,你可以使用
requests库。您需要找到一种方法来安排更新。 -
真@balderman,我只是假设关闭它会强制加载更新的文件。
标签: python json python-3.x