簡體   English   中英

帶有有效 JSON 的 Python json.load(file) 錯誤

[英]Python json.load(file) error with valid JSON

我有一個關於在 Python 中使用 json 庫時遇到的問題的問題。

我正在嘗試使用以下代碼使用 json.load(file) 命令讀取 json 文件:

import json

filename= '../Data/exampleFile.json'
histFile= open(filename, 'w+')
print(json.load(histFile))

根據我找到的某個網站,我嘗試讀取的 JSON 文件是有效的:該驗證的屏幕截圖,因為我是新手,仍然缺乏聲譽...

我收到的錯誤消息如下:

File ".\testLoad.py", line 5, in <module>
print(json.load(histFile))
File "C:\Users\...\Python\Python37\lib\json\__init__.py", line 296, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "C:\Users\...\Python\Python37\lib\json\__init__.py", line 348, in loads
return _default_decoder.decode(s)
File "C:\Users\...\Python\Python37\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\...\Python\Python37\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

好的,所以我相信問題不是文件,而是 json.load(file) 在其他情況下對我有用。

遺憾的是,我無法自己弄清楚這個錯誤消息,所以如果有更多處理 Python-JSON 交互經驗的人可以幫助我,那將是令人驚訝的。

您打開文件進行寫入

histFile= open(filename, 'w+')
#                        ^^^^

w模式首先截斷文件,所以文件是空的(這里也可以讀取文件並不重要, +可以看到,但文件仍然被截斷)。 請參閱open()函數文檔

'w' : 打開寫入,首先截斷文件)

其中沒有要解析的 JSON 數據。 這就是為什么異常告訴您解析在文件的最開始失敗的原因:

Expecting value: line 1 column 1 (char 0)

第一行第一列沒有數據。

如果您想在不先截斷文件的情況下打開文件進行讀取和寫入,請使用'r+'作為文件模式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM