我使用 Python 从文本文件加载 JSON 并将其转换为字典。我想到了两种方法,想知道哪种方法更好。
最初我打开文本文件,加载 JSON,然后关闭文本文件。
import json
// Open file. Load as JSON.
data_file = open(file="fighter_data.txt", mode="r")
fighter_match_data = json.load(data_file)
data_file.close()
我可以改为执行以下操作吗?
import json
// Open file. Load as JSON.
fighter_match_data = json.load(open(file="fighter_data.txt", mode="r"))
我还需要关闭文件吗?如果是这样,怎么办?如果没有,Python 会自动关闭文件吗?
最佳答案
个人也不会这样做。打开文件的最佳实践通常是使用 with
。
with open(file="fighter_data.txt", mode="r") as data_file:
fighter_match_data = json.load(data_file)
这样,当您退出 with
语句时,它会自动关闭。它比第一个短,如果它抛出错误(例如,解析 json 时出错),它仍然会关闭它。
关于您的实际问题,需要关闭一行中的文件。
根据我对文件处理和垃圾收集的了解,如果您使用 CPython,由于该文件不再被引用,因此垃圾收集器“应该”立即关闭它。然而,依靠垃圾收集来为您完成工作从来都不是编写代码的最好方式。 (有关原因的信息,请参阅 open read and close a file in 1 line of code 的答案)。
关于python - 使用Python将JSON从文件加载到字典的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49166307/