我在Json文件中首先使用json存储从当前代码的函数中插入一个值,然后使用来自不同代码的函数,但是当我第二次更新值时,它会重置我在第一次设置的值代码。
我相信您会从下面的示例代码中更好地理解它:
我有2个文件:
请看下面两个文件的代码。
jsonstore.py
from kivy.storage.jsonstore import JsonStore
import importedmodule as jb
JsonFileName = 'a.json'
store = JsonStore(JsonFileName)
def hello():
store.put('ten', v=int(10))
hello()
jb.hello()
importedmodule.py
from kivy.storage.jsonstore import JsonStore
JsonFileName = 'a.json'
store = JsonStore(JsonFileName)
def hello():
store.put('twenty', v=int(20))
当我运行第一个文件代码i.t时我想要那个jsonstore.py其输出应为:
{"twenty": {"v": 20}, "ten": {"v": 10}}
但我的输出为
{"twenty": {"v": 20}, "ten": {"v": 0}}
我不确定为什么不将10的值更新为10。不确定什么是错的或我做错了什么。任何人都可以帮助我或建议。?
答案 0 :(得分:2)
您正在创建两个JsonStore
。这就像在两个单独的编辑器中打开相同的文本文件,然后进行更改并保存文件的每个副本 - 只保存一个副本,另一个将被覆盖。尝试为每种方法使用相同的商店。
<强> jsonstore.py 强>
from kivy.storage.jsonstore import JsonStore
import importedmodule as jb
JsonFileName = 'a.json'
store = JsonStore(JsonFileName)
def hello(s):
s.put('ten', v=int(10))
hello(store)
jb.hello(store)
<强> importedmodule.py 强>
def hello(s):
s.put('twenty', v=int(20))