python load json文件的報錯處理

在windows系統下,創建了一個txt文本文件,寫入字符串,保存爲utf-8的編碼格式。然後修改後綴爲.json。

用以下代碼load這個json文件

import json

with open(r"./file/test3.json", "r", encoding="utf-8") as f:
    data = json.load(f)
    print(data)

結果報瞭如下的錯誤:

最後發現原因是因爲WINDOWS自帶的記事本等軟件,在保存一個以UTF-8編碼的文件時,會在文件開始的地方插入三個不可見的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隱藏的字符,用於讓記事本等編輯器識別這個文件是否以UTF-8編碼。

使用了兩種解決辦法,第一種:

import json

with open(r"./file/test3.json", "r", encoding="utf-8") as f:
    text = f.read()
    if text.startswith(u'\ufeff'):
        text = text.encode('utf-8')[3:].decode('utf-8')
    data = json.loads(text)
    print(data)

第二種使用其他的編輯軟件來創建json文件,如Notepad++就可以。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章