運行一段處理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()
,然后就沒有問題了,記錄解決的一個小坑。養成好的代碼習慣,能給我們省去很多麻煩!
加油啊!