如何在Python 2.7中从文件读取字典?
我在用Python保存用户总数时遇到了一些问题。我搜索了很多资料,尝试了很多方法,但都没有成功,所以我来这里求助。我想把用户的总数存储在一个文件里,并在需要的时候取出来。我一直在用 json.dump()
把信息写入文件,也试过用 json.load()
来读取,但我无法只获取某个特定用户的余额,比如我想知道用户2123的余额,而不是所有用户的。简单来说,我需要知道怎么调用 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 个回答
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