簡體   English   中英

不明白為什么ValueError:無法解碼JSON對象

[英]Don't understand why ValueError: No JSON object could be decoded occurs

我收到以下錯誤

ValueError: No JSON object could be decoded

我的json數據有效,我將JSON文件編碼更改為utf-8,但仍然無法正常工作,這是我的代碼:

f = open(os.path.dirname(os.path.abspath(__file__))+"/test.json", 'w+')
data = json.load(f)
pprint(data)

這是我的test.json數據:

{"X":19235, "Y":19220, "Z":22685}

首先,讓我們確認您的json數據有效地模擬了文件內容,如下所示:

import json
from StringIO import StringIO

f = StringIO("""

{"X":19235, "Y":19220, "Z":22685}

""")

try:
    data = f.read()
    json.loads(data)
except:
    print("BREAKPOINT")

print("DONE")

該腳本僅打印DONE ,這意味着您的文件內容是有效的JSON,因此,如果我們看一下您的腳本:

f = open(os.path.dirname(os.path.abspath(__file__))+"/test.json", 'w+')
data = json.load(f)
pprint(data)

代碼的主要問題是您正在使用w+寫模式,該模式會截斷文件(您應該使用讀取模式),因此文件對象不再有效。 嘗試這個:

f = open(os.path.dirname(os.path.abspath(__file__))+"/test.json", 'rb')
data = json.load(f)
pprint(data)

或這個:

f = open(os.path.dirname(os.path.abspath(__file__))+"/test.json", 'rb')
data = json.loads(f.read())
pprint(data)

暫無
暫無

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

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