Python遍歷檢測目錄下Json檔案是否合法

2021-08-31 11:32:52 字數 2294 閱讀 5558

解決非程式提交錯誤json導致功能異常,生成json檔案如果不合法不寫入。

使用 json 函式需要匯入 json 庫:import json。

函式描述

json.dumps

將 python 物件編碼成 json 字串

json.loads

將已編碼的 json 字串解碼為 python 物件

json.load

傳入檔案路徑讀取+解碼為 python 物件

詳細使用:python json

#!/usr/bin/python

# -*- coding: utf-8 -*-

import os

import sys

import json

from colored import colored

# 檢測json檔案工具

# @author l2xin

class

jsoncheckhelper

:# 檢測json目錄下的所有.json檔案是否合法 public

@staticmethod

defcheckjsondir

(rootdir):if

not os.path.exists(rootdir)

:print

(colored.red(

"[jsondir.check warning]]"),

"rootdir:%s not exists "

%(colored.red(rootdir)))

return

#列出資料夾下所有的目錄與檔案

list

= os.listdir(rootdir)

for i in

range(0

,len

(list))

: path = os.path.join(rootdir,

list

[i])

if os.path.isfile(path)

: jsoncheckhelper.__checkjsonfile(path)

else

: jsoncheckhelper.checkjsondir(path)

# 檢測單個.json檔案是否合法 private

@staticmethod

def__checkjsonfile

(filepath)

:if filepath.find(

".json")==

-1:return

with

open

(filepath,

"r+"

, encoding=

'utf-8'

)as one_file:

try:

json.load(one_file)

#兩種寫法一樣效果

#json.loads(one_file.read())

except json.jsondecodeerror as err:

print

(colored.red(

"[json.load error]"),

"filepath:%s %s"

%(filepath, err)

)

注:colored 為列印輔助類,詳情見另一篇:

python終端顯示彩色字元(封裝了colored類)

jsoncheckhelper.checkjsondir(sys.path[0]

+"/json_client"

)

[jsondir.check warning]] rootdir:/users/l2xin/documents/doc/json_client not exists

[json.load error] filepath:/users/l2xin/documents/doc/jsonclient/gmconfig_client.json expecting 『,』 delimiter: line 10 column 71 (char 617)

[json.load error] filepath:/users/l2xin/documents/doc/jsonclient/新建/gmconfig_client.json expecting 『,』 delimiter: line 10 column 71 (char 617)

Python 遍歷目錄下的所有檔案

allfilenum 0 def printpath level,path global allfilenum 列印乙個目錄下的所有資料夾和檔案 所有資料夾,第乙個欄位是次目錄的級別 dirlist 所有檔案 filelist 返回乙個列表,其中包含在目錄條目的名稱 google翻譯 files o...

Python遞迴遍歷目錄下所有檔案

自定義函式 import os path d temp del a def gci path this is a statement parents os.listdir path for parent in parents child os.path.join path,parent print ...

python遍歷目錄下的所有檔案和目錄詳細介紹

test a d g g.txt test a d a.txt test a e b c 1.txt 2.txt 1 獲取test目錄下的所有檔案 for root,dirs,files in os.walk r d test for file in files 獲取檔案所屬目錄 print roo...