我在Python中保留用户总数时遇到问题。我搜索并尝试了很多东西,但没有成功,这让我来到这里。我希望能够将用户总计存储在文件中并根据需要检索它们。我已经json.dump()
信息了,我尝试json.load()
但是我无法检索一个特定的值,就像我想知道user2123有什么平衡,而不是每个人。所以基本上,我需要知道如何调用json.load,这样我才能nameofdictionary[user2123]
并获得平衡。我不认为我目前的代码会对你有所帮助,但如果你需要它,请告诉我。非常感谢!
#gets the username
combine=[{str(signup):0}]
json.dump(combine,open('C:\Users\Joshua\Desktop\Balances.txt','a'))
#stuff that doesn't matter
print 'Withdrawing %s dollars... '%howmuchwd
json.load(open('C:\Users\Joshua\Desktop\Database.txt'))
print 'You now have %s dollars' %Idkwhattocallit
该文件如下所示: [{“12”:0}] [{“123”:0}]
答案 0 :(得分:2)
您没有将json.load
的返回值(字典)分配给变量。实际上你没有做任何有关返回值的事情:)
你可以做到
d = json.load(open('C:\Users\Joshua\Desktop\Database.txt'))
print d['user2123']
或者,如果您在检查' user2123'之后不需要字典:
print json.load(open('C:\Users\Joshua\Desktop\Database.txt'))['user2123']
演示文件Database.txt
:
{"userXYZ":"3.50", "user2123":"42"}
Python的演示:
>>> import json
>>> with open('Database.txt') as f:
... print(json.load(f)['user2123'])
...
42
编辑:
抱歉,我忽略了这个问题:文件内容
[{"12": 0}][{"123": 0}]
是不有效的JSON。有效的JSON看起来像这样:
{"12": 0,"123": 0}
假设您的文件内容为:
>>> with open('Database.txt') as f:
... print(json.load(f)['123'])
...
0