python中读写json文件报错:json.decoder.JSONDecodeError: Expecting ',' delimiter: line 23672 column 21
运行一段处理json文件的python代码是正常的,然后又写了另外一段代码做另一部分的处理,
两端代码分成运行,没有任何毛病,但是我想将两个代码合并时(后续处理的代码import前面的那个),
这个是前面的import json
file_path = 'D:\\********' f = open(file_path + '\\' + 'JayChou.json', 'r', encoding='utf-8-sig') number = json.load(f) # i = 0 f_rewrite = open(file_path + '\\' + 're_JayChou.json', 'w', encoding='utf-8-sig') def re_write(number, f_rewrite): """ 重写一个json文件,对内容稍加处理 :param number: 原文件内容 :param f_rewrite: 现文件 """
****
****
****
json.dump(number, f_rewrite, ensure_ascii=False, indent=4)
然后合并的,如下
import json from rewrite import re_write file_path = 'D:\\*******' f = open(file_path + '\\' + 'JayChou.json', 'r', encoding='utf-8-sig') number = json.load(f) f_rewrite = open(file_path + '\\' + 're_JayChou.json', 'w', encoding='utf-8-sig') re_write(number, f_rewrite)
# 待补充
f1 = open(file_path + '\\' + 're_JayChou.json', 'r', encoding='utf-8-sig')
************************************ lyrics_list = json.load(f1)
************************************ list0 = lyrics_list # print(list0)
***
***
***
***
data = del_unexpected(list0) # print(list0) f2 = open(file_path + '\\' + 'final_JayChou.json', 'w', encoding='utf-8-sig') json.dump(data, f2, ensure_ascii=False, indent=4)
此时报错了json.decoder.JSONDecodeError: Expecting ',' delimiter: line 1 column 1*** ,,位置是下面一段代码的两段 “ ******************** ” 中的哪一行,总是报错json文件某一行缺少一个“ , ”,我就很奇怪了,明明分开运行没有不毛病,为什么是合并之后就有问题,然后自己去老老实实打开json文件到哪一行(23672)然后一看,????嗯????到这里就没有下面的内容???
想了半天不知道什么原因,找了网上的回答,说的答案是“找到报错的位置补充缺失的内容,然后就能够怎样....”
但是我的本来分开运行没有问题的
不会是这个原因的,后面想了半天突然想到之前看到的有关于python 中open()函数的提示,有时候文件有open()就应该要有close()
果然在上面代码“# 待补充”的位置添加上
f_rewrite.close()
,然后就没有问题了,记录解决的一个小坑。养成好的代码习惯,能给我们省去很多麻烦!
加油啊!
posted on 2021-04-02 21:11 你爱我像谁?码农! 阅读(7589) 评论(0) 编辑 收藏 举报