我在将用户总数保持在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}]
最佳答案
您没有将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