[英]Is there any difference between the two ways to dump an object to a JSON file?
方法1:
json.dump(object, file('object.json', 'w'))
方法2:
f = file('object.json', 'w')
json.dump(object, f)
f.close()
我經常使用方法2將對象轉儲到json文件中,但是看起來很丑。 方法1看起來很清晰,但我為打開文件對象作為參數是否正確感到困惑,在將對象存儲在JSON文件中之后,誰將控制該對象?
我是否為打開文件對象作為參數感到困惑,在將對象存儲在json文件中之后,誰將控制該對象?
沒有人控制。 在方法1的json.dump
調用中創建的file
在該行之后離開作用域,因此被隱式關閉。 因此,這兩種方法是等效的。
如果您想更詳細些,我建議使用上下文管理器 :
with file('object.json', 'w') as f:
json.dump(object, f)
這樣可以確保始終在塊末尾正確關閉文件,即使在發生錯誤時將控制權傳遞給任何異常處理程序也是如此。
我會說沒有太大的差別,但是,第二方法可以考慮從可讀性的角度更好; 可讀性很重要。
在您的示例中,用於打開文件的文件名和模式是硬編碼的字符串。 如果它們都是變量名(在現實世界中很可能是變量名),我覺得方法#1在閱讀時會更難解析。
另一個觀察結果是,使用方法1,您將無法繼續寫入該文件對象,因為您沒有引用它的變量。 您將需要重新打開它以附加更多數據。
它們在內部是相同的,您可以檢查源代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.