Python不读取更新的json数据



因此,我在python中有一个程序可以读取一些json数据。我有一个c#程序来将数据插入json文件。正在成功插入数据。

我真正的问题是,假设我在json上有这些数据默认[{"a": "b"},{"c": "d"},{"e": "f"}]当我添加更多数据时,json变成[{"a": "b"},{"c": "d"},{"e": "f"},{"g": "h"}]正如我之前所说,它添加成功,但当我运行.py时,我得到了所有数据,当我运行相同的程序但作为.exe时,我只得到了更新前的数据,所以我得到了这个([{"a": "b"},{"c": "d"},{"e": "f"}](我100%确信我正在从两个程序上的同一个文件中读取(c#用于插入,python用于读取和处理数据(我正在阅读python脚本上的数据,如下所示:

json_path = f"{os.environ['SYSTEMDRIVE']}\Program Files\PFO\Extensions\extensions.json"
with open(json_path, "r") as jf:
#jf.flush()
d = json.load(jf)
#Work with data here...

我试用了jf.flush(),但没有改变任何内容
我做了一些研究,没有找到任何对我有帮助的东西。
我不知道是否有一些类似缓存的内存必须刷新,或者是否有办法在每次程序运行时强制加载json数据
有人知道我做错了什么,或者这个问题的解决方法吗
如果这个问题没有足够的信息,请告诉我,我会编辑问题并发布。

注意:我这样做的方式是:

  1. 我编译了python文件,使其成为.exe
  2. 我运行编译后的程序来检查它正在读取的所有数据
  3. 我运行c程序添加数据
  4. 在插入并关闭c#程序后,我重新运行了python程序,因此该文件未被使用
  5. 我验证文件是否已更新,但.exe程序没有读取更新的数据
  6. 我在可视化代码中运行.py,它读取新数据

注意2:要将.py编译为.exe,我在可视化代码中打开我的项目文件夹,并在控制台中运行此命令
pyinstaller --onefile -n="PFO" script.py
提前感谢。

因此,经过近4个小时的调试,我发现问题不在于代码,而在于文件夹的位置

我总是以管理员身份运行代码编辑器,所以.py可以读取json数据

但是.exe文件运行正常,而不是以管理员身份运行
为了解决这个问题,我基本上只是将文件夹从";C: \程序文件"至";C: "程序文件(x86(">

感谢那些试图提供帮助的人,我希望这对其他人有帮助!

最新更新