运行json.loads()的时候会出现下面几个错误
错误1:JSONDecodeError: Expecting ',' delimiter: line 1 column 658 (char 657)
这个错误的意思是你的数据格式并不符合json的格式要求
可以使用json格式化工具进行格式化检验,格式化工具有https://www.json.cn/和https://www.bejson.com/
因此需要检查数据中是否存在"'"这样的情况,
比如:"an utterance of ‘boo’ to show disapproval or contempt or speaker or performer"
这个句子中出现单引号,因此识别失败,所以要注意去掉句子中的所有的单引号。
备注:json中都是双引号,单引号是不被识别的。还有True、False、None也是不能被识别的!!!!
错误2:json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2
需要将字符串中的单引号改成双引号即可:
str_json = f.read()
temp = str_json.replace("'", '"') # 将单引号,替换成双引号
json_obj = json.loads(temp) # Done!
错误 3:IndentationError: expected an indented block
说明是缩进错误,希望缩进一个块
由于json不能识别一些符号,因此是和python存在差异的。如果不转换数据类型,直接把python里面的字典当成json使用,或者直接拿获取到的json数据当成字典用,都会报错。
python与json数据类型对应表:
Python和json的数据类型转换需要用到python的内置模块json,直接在代码中import json即可。
json模块中主要用到4个函数
json.dumps(): 将Python数据编码(转换)为JSON数据;
json.loads(): 将JSON数据转换(解码)为Python数据;
json.dump(): 将Python数据编码并写入JSON文件;
json.load(): 从JSON文件中读取数据并解码。