无法从数据库蟒蛇
问题描述:
阅读我有以下数据库:无法从数据库蟒蛇
{'numberOfExercises': {'quimica:D': 13, 'quimica:E': 12, 'quimica:B': 12, 'quimica:C': 12,
'quimica:A': 14, 'aventura:A': 0}, 'topicDone': {u'quimica:A': 2}, 'exercisePoints':
{u'quimica:A:1': 1.0, u'quimica:A:4': 1.0}, 'exerciseTotal': {u'quimica:A:1': 1,
u'quimica:A:4': 1}, 'toSend': {u'quimica:A:1': u'send_data(quimica, A, 1, 1.0)',
u'quimica:A:4': u'send_data(quimica, A, 4, 1.0)'}, 'areaPoints': {u'quimica': (2, 2.0)},
'stage': {'level': 2}, 'topicPoints': {u'quimica:A': (2, 2.0)}}
我的信息担心的是阶段。
我这是怎么保存:
def save_stage(value):
global stage
stage['level']= value
print stage
__save_data__()
def __save_data__():
global areaPoints
global topicPoints
global exercisePoints
global topicDone
global toSend
global numberOfExercises
global stage
f = open('database.json', 'w')
data = {'areaPoints': areaPoints, 'topicPoints': topicPoints,
'exerciseTotal': exerciseTotal, 'numberOfExercises': numberOfExercises,
'exercisePoints': exercisePoints, 'topicDone': topicDone,
'toSend': toSend, 'stage': stage}
f.write(repr(data))
print data
f.close()
,这是我如何得到它:
def get_stage():
return stage.get("level",0)
为0作为默认值。
的事情是,当我打电话时get_stage()
我已经保存在数据库中的东西(我最后一次执行我的程序),它总是返回0。但是,当我执行之后get_stage()
save_stage()
却没有这个问题从阅读数据库,任何想法?
def __load_data__():
global areaPoints
global topicPoints
global exercisePoints
global exerciseTotal
global topicDone
global toSend
global numberOfExercises
global stage
try:
f = open("database.json")
data = f.read()
data = eval(data)
f.close()
except:
data = {}
stage = stage.get('stage', {})
areaPoints = data.get('areaPoints', {})
topicPoints = data.get('topicPoints', {})
exercisePoints = data.get('exercisePoints', {})
exerciseTotal = data.get('exerciseTotal', {})
topicDone = data.get('topicDone', {})
toSend = data.get('toSend', {})
numberOfExercises = data.get('numberOfExercises', {})
答
你需要一些load_stage()
函数从database.json
读取数据。并且您必须在某个文件中保存/读取stage['level']
值。
编辑:
stage = data.get('stage', {})
代替stage = stage.get('stage', {})
(data.get
代替stage.get
)
当然,我想要做的就是让数据库值每当我打电话'get_stage()',不仅在当前程序执行期间我已经保存了信息 – Malice
当你完成程序的运行时,除非你坚持下去,否则一切都会消失(如果你幸运的话) – doctorlove
我知道,我在“我有以下数据库:”之后复制的代码是我的database.json。该信息被保留,但不知何故未被读取 – Malice