2014-04-30 1 views
1

현재 코드의 함수에서 json 저장을 사용하여 Json 파일에 값을 삽입하고 사용하는 다른 코드의 함수에서 값을 삽입합니다. 그러나 값을 다시 설정할 때 다시 설정합니다. 내가 첫 번째 코드에서 설정 한 값.json 저장 값이 올바르게 저장되지 않습니다. kivy

난 당신이 더 나은 아래의 샘플 코드를 이해 되리라 확신합니다 :

  1. jsonstore.py - 수입 importedmodule을 촉진합니다 파일 2
  2. importedmodule이다 : 나는이 개 파일이

    .py

두 파일 모두 아래 코드를 참조하십시오.

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.를 실행할 때 내가

{"twenty": {"v": 20}, "ten": {"v": 0}} 

로 출력을 얻고있다

{"twenty": {"v": 20}, "ten": {"v": 10}} 

하지만 10로 10의 값을 업데이트하지 않는 이유는 확실하지 않다 :로 jsonstore.py 출력이되어야한다. 무엇이 잘못되었거나 내가 뭘 잘못하고 있는지 확실하지 않습니다. 누구든지 저나 조언을 도울 수 있습니까?

답변

2

두 개의 JsonStore을 생성 중입니다. 이는 두 개의 별도 편집자에서 동일한 텍스트 파일을 연 다음 파일의 각 사본을 변경하고 저장하는 것과 같습니다. 단 하나의 사본 만 저장되고 다른 사본은 덮어 쓰기됩니다. 각 방법에 대해 동일한 상점을 사용해보십시오. 내가 파일 2의 함수에서 저장 파일을 열 경우

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)) 
+0

... 또한도 작동합니다. 감사 !! –

관련 문제