将 JSON 从文件加载到 Python 字典的正确方法

Tel*_*hot 5 python json dictionary

我目前这样做是为了将 JSON 保存到文件中:

with open(filename, 'w+') as f:
    json.dump(data, f)
Run Code Online (Sandbox Code Playgroud)

我这样做是为了将文件中的 JSON 加载到 Python 字典中:

with open(filename, 'r') as f:
     data = json.loads(json.load(f))
Run Code Online (Sandbox Code Playgroud)

我知道json.load从文件json.loads加载 JSON 并从字符串加载 JSON。

当我调用json.load(f)从文件加载 JSON 时,我得到了 JSON 对象的字符串表示:

'{"a": 1,"b": 2,"c": 3}'
Run Code Online (Sandbox Code Playgroud)

然后我调用json.loads(json.load(f))将该字符串表示形式转换为 Python 字典:

{'a': 1, 'b': 2, 'c': 3}
Run Code Online (Sandbox Code Playgroud)

我知道我也可以ast.literal_eval()用来将字符串转换为 Python 字典。

我的问题是 - 将 JSON 从文件目录加载到 Python 字典的正确方法是什么?是否真的有必要同时调用两者json.loads并将json.loadJSON 从文件中获取到字典中?

Ste*_*ann 6

data必须已经是一个 JSON 字符串,然后在json.dump. 然后当然您需要稍后对其进行双重解码。因此,无需再次使用 JSON 对原始 JSON 进行编码,只需将其按原样写入文件即可:

with open(filename, 'w+') as f:
    f.write(data)
Run Code Online (Sandbox Code Playgroud)