[python] Json 데이터 수정하기

hams·2022년 12월 22일
0

Python~~

목록 보기
1/1

특정 폴더 안에 들어있는 모든 Json 파일의 데이터 값(filename)을
파일명으로 변환하는 작업

sth.json

{
	"images": [
		{
			"filename": "sth_000001.json",
			"width": 4032,
			"height": 3024
		}
	],
	"members": [
		{
			"age": [
              17,
              20,
              30,
              12,
              7
			],
          "class": "pen"
		}
	]
}
				

jsonEdit.py

import json
import os

# r 파일읽기 (데이터->딕셔너리로 변환)
os.chdir('./변경전/brick')
file_names = os.listdir()

# 데이터변환
for file_path in file_names:
    with open(file_path, 'r') as file:
        data = json.load(file)
    data["images"][0]["filename"] = file_path
# w 내보내기 (딕셔너리->Json 생성)
    with open(file_path, 'w', encoding='utf-8') as file:
        json.dump(data, file, indent="\t")

내부에 있는 폴더를 전부 순회하게끔 코드 다시 수정

수정 후 jsonEdit.py

import json
import os

# 파이썬 파일 기준으로 디렉토리 변경
os.chdir('./변경전')
path = os.getcwd()  # 작업중인 폴더 path
dir_list = os.listdir() # 폴더의 모든 파일 목록_list

# 폴더_리스트 순회
for dir in dir_list:
    dir_path = path+'/'+ dir
    os.chdir(dir_path)
    file_list = os.listdir()
#파일_리스트 순회(개별파일)
    for filename in file_list:
# r 파일읽기 (데이터->딕셔너리로 변환)
            with open(filename, 'r') as file:
                data = json.load(file)
            data["images"][0]["filename"] = os.path.splitext(filename)[0] +'.jpg'
# w 내보내기 (딕셔너리->Json 생성)
            with open(filename, 'w', encoding='utf-8') as file:
                json.dump(data, file, indent="\t")

0개의 댓글