如何从Python 2.7中的文件中读取字典?

时间:2014-07-09 22:30:46

标签: python json file python-2.7 dictionary

我在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}]

1 个答案:

答案 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