程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

python-非標准格式json文件讀取報錯解決辦法

編輯:Python

不是所有以.json結尾的文件,裡面的數據都是標准的json格式。
如,以下名為countries.json文件中的數據格式,就是非標准化的json數據格式。

注:json標准格式中,字符串必須用雙引號,此文件字符串為單引號。
在讀取這類非標准格式的json文件時,使用python自帶的json模塊,將會報錯如下:

import json
# json模塊讀取非標准格式json文件
with open('countries.json', 'r', encoding='utf-8') as f:
data = json.load(f)
print(data)

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 1 (char 2)

解決辦法:
使用python第三方模塊demjson,該模塊可以解決json模塊的格式限制問題,還包含了 JSONLint 的格式化及校驗功能。

demjson使用方法,如下:
1、demjson安裝
打開命令提示符(cmd),進入到本地安裝python環境的Scripts文件下,輸入安裝命令並回車,
安裝命令:pip install demjson

2、json文件讀取
demjson.decode_file(),讀取非標准格式的json文件,返回一個字典(dict)格式數據。
如,以上非標准countries.json文件讀取:

# 非標准格式json文件讀取
import demjson
data = demjson.decode_file('countries.json', encoding='utf-8')
print(data)
print("返回值類型:", type(data))


注:可見,使用json模塊讀取非標准json文件出錯時,可使用demjson第三方模塊來解決。

微信關注【一位代碼】,了解更多關於python相關問題解決辦法。
-end-


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved