▶Json 파일에서 특정 항목만 추출하여 csv 파일로 저장하기
- 특정 폴더 아래의 모든 JSON 파일 목록을 가져옵니다.
- Json 파일 항목중 selected_fields로 지정한 항목만 값을 추출합니다.
- 추출한 값을 CSV 파일로 저장합니다.
import os
import json
import csv
def json_to_csv(json_file_path, csv_file):
# JSON 파일을 읽어와 파싱합니다.
with open(json_file_path, 'r', encoding='utf-8') as json_file:
data = json.load(json_file)
# CSV 파일에 데이터를 추가합니다.
with open(csv_file, 'a', newline='', encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=data[0].keys())
writer.writerows(data)
def convert_folder_to_csv(folder_path, output_csv):
# CSV 파일의 헤더를 작성합니다.
with open(output_csv, 'w', newline='', encoding='utf-8') as csv_file:
writer = csv.writer(csv_file)
writer.writerow([]) # 빈 행 추가
# 폴더 내의 모든 JSON 파일을 찾아 변환합니다.
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith('.json'):
json_file_path = os.path.join(root, file)
json_to_csv(json_file_path, output_csv)
# 특정 폴더 내의 JSON 파일들을 포함한 모든 서브 폴더들을 CSV 파일로 변환합니다.
input_folder = '/path/to/your/folder'
output_csv_file = 'output.csv'
convert_folder_to_csv(input_folder, output_csv_file)
print(f'변환 완료. CSV 파일이 {output_csv_file}로 저장되었습니다.')
▶ Json 파일을 csv로 변경하는 다른 코드 예제입니다.
import os
import json
import csv
def extract_selected_fields(json_data, selected_fields):
extracted_data = {field: json_data[field] for field in selected_fields if field in json_data}
return extracted_data
def json_to_csv(json_file_path, csv_file, selected_fields):
# JSON 파일을 읽어와 파싱합니다.
with open(json_file_path, 'r', encoding='utf-8') as json_file:
data = json.load(json_file)
# 추출된 데이터를 CSV 파일에 추가합니다.
with open(csv_file, 'a', newline='', encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=selected_fields)
for item in data:
extracted_data = extract_selected_fields(item, selected_fields)
writer.writerow(extracted_data)
def convert_folder_to_csv(input_folder, output_csv, selected_fields):
# CSV 파일의 헤더를 작성합니다.
with open(output_csv, 'w', newline='', encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=selected_fields)
writer.writeheader()
# 폴더 내의 모든 JSON 파일을 찾아 변환합니다.
for root, dirs, files in os.walk(input_folder):
for file in files:
if file.endswith('.json'):
json_file_path = os.path.join(root, file)
json_to_csv(json_file_path, output_csv, selected_fields)
# 선택한 JSON 항목의 키를 지정합니다.
selected_fields = ['name', 'age', 'city']
# 특정 폴더 내의 JSON 파일들을 포함한 모든 서브 폴더들을 CSV 파일로 변환합니다.
input_folder = '/path/to/your/folder'
output_csv_file = 'output.csv'
convert_folder_to_csv(input_folder, output_csv_file, selected_fields)
print(f'변환 완료. CSV 파일이 {output_csv_file}로 저장되었습니다.')
'공학속으로 > python' 카테고리의 다른 글
[파이썬] 관리자 모드로 외부 프로그램 실행하기 GUI (1) | 2023.12.16 |
---|---|
[파이썬] 파일 복사 GUI 형태로 만들기 (0) | 2023.12.16 |
[Python] 스트리밍, 동영상 플레이 하기 (1) | 2023.10.17 |
[python] csv 파일을 excel 파일로 변환하기 (0) | 2023.08.17 |
[python] 텍스트 파일에서 IP을 추출하여 저장하기 (0) | 2023.08.11 |
댓글