import csv
import json
import sys
import os
def is_valid_json_file(filename):
if not os.path.exists(filename):
return False
try:
with open(filename, 'r', encoding='utf-8') as f:
json.load(f)
return True
except (FileNotFoundError, ValueError):
return False
def main():
# JSONファイル名
#json_filename = "data.json"
json_filename = sys.argv[1]
# CSVファイル名
#csv_filename = "data.csv"
csv_filename = sys.argv[2]
print ('JSONファイル:',json_filename)
print ('CSVファイル :',csv_filename)
#print(is_valid_json_file(json_filename))
if not is_valid_json_file(json_filename):
print("指定のファイルは正しいJSON形式でない、または存在しません。")
# 処理を中断する
exit()
# JSONファイルを読み込む
with open(json_filename, mode='r', encoding='utf-8') as json_file:
json_data = json.load(json_file)
# CSVファイルに書き込むためのフィールド名
fieldnames = ["key1", "key2"]
# CSVファイルに書き込み
with open(csv_filename, mode='w', newline='', encoding='utf-8') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
# ヘッダーを書き込む
writer.writeheader()
# 各行を書き込む
for row in json_data:
writer.writerow(row)
print("CSVファイルが作成されました:", csv_filename)
if __name__ == '__main__':
main()
test >> python .\json_to_csv.py data.json data.csv
JSONファイル: data.json
CSVファイル : data.csv
CSVファイルが作成されました: data.csv
test >>