【发布时间】:2015-08-20 10:36:20
【问题描述】:
我目前正在这样做以将 JSON 保存到文件中:
with open(filename, 'w+') as f:
json.dump(data, f)
我这样做是为了将 JSON 从文件加载到 Python 字典中:
with open(filename, 'r') as f:
data = json.loads(json.load(f))
我了解json.load 从文件加载 JSON,json.loads 从字符串加载 JSON。
当我调用 json.load(f) 从文件加载 JSON 时,我得到 JSON 对象的字符串表示:
'{"a": 1,"b": 2,"c": 3}'
然后我调用 json.loads(json.load(f)) 将该字符串表示形式转换为 Python 字典:
{'a': 1, 'b': 2, 'c': 3}
我知道我也可以使用ast.literal_eval() 将字符串转换为 Python 字典。
我的问题是 - 将 JSON 从文件目录加载到 Python 字典的正确方法是什么?真的有必要同时调用json.loads 和json.load 来将JSON 从文件中获取到字典中吗?
【问题讨论】:
-
我当然会推荐使用
json库,而不是ast.literal_eval,前者正是为此目的而设计的。 -
json.load应该返回对象,而不是字符串。对.loads的额外调用是怎么回事?
标签: python json dictionary