【问题标题】:How to read a dictionary from a file in Python 2.7?如何从 Python 2.7 中的文件中读取字典?
【发布时间】:2014-08-31 03:07:50
【问题描述】:

我在 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.dump()json.load() 吗?
  • print json.load(myfile)['user2123'] 有什么问题?
  • 什么是用户总数?用户总数还是用户列表?
  • 对不起!用户总数是每个用户拥有的金额。对不起,我应该更清楚。
  • @timgeb 我会尽快尝试。

标签: python json file python-2.7 dictionary


【解决方案1】:

您没有将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

【讨论】:

  • 我收到此错误:File "<pyshell#5>", line 1, in <module> json.load(open('C:\Users\Joshua\Desktop\Database.txt'))['12'] File "C:\Python27\lib\json\__init__.py", line 290, in load **kw) File "C:\Python27\lib\json\__init__.py", line 338, in loads return _default_decoder.decode(s) File "C:\Python27\lib\json\decoder.py", line 369, in decode raise ValueError(errmsg("Extra data", s, end, len(s))) ValueError: Extra data: line 1 column 15 - line 1 column 34 (char 14 - 33)
  • @user3818089 在这种情况下,您的 Database.txt 不是有效的 JSON。
  • 好的,我知道了。让字典被 [] 和 {} 包围是我的错误。非常感谢!
猜你喜欢
  • 2015-02-23
  • 1970-01-01
  • 2021-05-14
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 2020-03-26
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多