处理json文件时遇到的坑

运行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数据类型对应表:

处理json文件时遇到的坑_第1张图片

Python和json的数据类型转换需要用到python的内置模块json,直接在代码中import json即可。

json模块中主要用到4个函数

  json.dumps(): 将Python数据编码(转换)为JSON数据;
  json.loads(): 将JSON数据转换(解码)为Python数据;
  json.dump(): 将Python数据编码并写入JSON文件;
  json.load(): 从JSON文件中读取数据并解码。

参考博客

https://www.jianshu.com/p/ee25e2b94eb8

https://www.jianshu.com/p/becada48f8cf

你可能感兴趣的:(模型测试,环境搭建)