こんにちは、齋藤です。
Bitwardenからエクスポートしたjsonファイルの情報をCSVに抽出したかったので、Pythonスクリプトを作りました。
何かの参考になれば幸いです。
import json
import csv
def extract_item_data(json_data):
if "items" in json_data:
return json_data["items"]
else:
raise ValueError("No 'items' found in JSON data.")
def convert_to_csv(item_data, csv_file_path):
with open(csv_file_path, 'w', newline='', encoding='utf-8') as csvfile:
fieldnames = ["name", "username", "password", "notes"]
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
for item in item_data:
name = item.get("name", "")
username = item.get("login", {}).get("username", "")
password = item.get("login", {}).get("password", "")
notes = item.get("notes", "")
writer.writerow({"name": name, "username": username, "password": password, "notes": notes})
# 読み込むJSONファイルのパス
json_file_path = 'JSONファイルのパス'
# JSONデータの読み込み
with open(json_file_path, 'r', encoding='utf-8') as json_file:
json_data = json.load(json_file)
try:
# "items"内のデータ抽出
item_data = extract_item_data(json_data)
# CSVファイルへの出力
csv_file_path = 'CSVファイルのパス'
convert_to_csv(item_data, csv_file_path)
print(f"CSV file '{csv_file_path}' successfully created.")
except ValueError as e:
print(f"Error: {e}")