簡體   English   中英

如何在Python 2.7中從文件中讀取字典?

[英]How to read a dictionary from a file in Python 2.7?

我在用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的返回值(字典) 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM