问题遇到的现象和发生背景
a、b两个窗口读取同一个json文件:通过a修改json,a能获取实时数据,b需要重启才能获取更新后的数据
用代码块功能插入代码,请勿粘贴截图
import json
from pathlib import Path
import base64
class Setjson(object):
def writeJsonData(self, item, newdata):
self.jsonData = self.getJsonData()
i = 0
while i < len(item):
self.jsonData[item[i]] = newdata[i]
i = i + 1
#加密
self.jsonData = base64.b64encode(json.dumps(self.jsonData).encode("utf-8")).decode("utf-8")
path0 = Path(__file__).resolve()
with open(str(path0)[0:str(path0).rfind('\\')] + '\\basicfiles\\info.json', 'w') as dump_f:
json.dump(self.jsonData, dump_f)
@staticmethod
def getJsonData():
path0 = Path(__file__).resolve()
with open(str(path0)[0:str(path0).rfind('\\')] + '\\basicfiles\\info.json', 'r', encoding='utf8')as f:
#return json.load(f)
#解密
return json.loads(base64.b64decode(json.load(f)))
运行结果及报错内容
以上是调用json的方法,b窗口内调用getJsonData()的值一直是初始值,不会获取到a修改后的值
我的解答思路和尝试过的方法
我猜想是需要释放内存?尝试过在a和b del 几个调用的变量结果没有变化
我想要达到的结果
有没有方法能让b能实时获取json数据