我有...文件打開失敗時,W +參數一起使用
datadir = os.path.dirname(__file__) + '/../some/place'
session_file = '/user_session.json'
with open(datadir + session_file, 'r') as data_file:
data = json.load(data_file)
print data
而這按預期工作。我可以在我的json文件中加載json並訪問它。
我想使用w+
參數,這樣如果文件不存在,它會被創建(儘管空白)。
除了當我使用w+
加載失敗,下面的錯誤和文件被覆蓋一個空白。
ValueError('No JSON object could be decoded',)
如何創建文件,如果它不存在,但如果它是讀取它,沒有失敗像這樣?
我不知道創建一個空文件對你有多大用處。 'json.load'會在嘗試解析空文件時引發異常,所以也許你應該抓住'FileNotFoundError'(或者Python 2中的'IOError'),然後做適當的操作。 – Blckknght
是的,我認爲這是發生了什麼事。也許我應該寫一些空字典作爲json來初始化文件? –
問題是,空白文件會覆蓋好文件,即使其中存在有效的json。 –