你爱我像谁?码农!

导航

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编辑  收藏  举报