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()

,然后就沒有問題了,記錄解決的一個小坑。養成好的代碼習慣,能給我們省去很多麻煩!

 

 

加油啊!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM