【Python】PythonでJSON ! lutの設定を読んだり書いたり

iPhone

フィルター設定は出来てるけど、pythonでLUTを作ることにしたので、jsonの設定ファイルをそのまま使おうかなと

JSON読み込み

import json

# JSONファイルを開く(読み込みモード)
with open('data.json', 'r', encoding='utf-8') as f:
    # JSONデータをPythonオブジェクトに変換
    data = json.load(f)

# 読み込んだデータの確認
print(data)
import json

json_data = """
{
    "filters": [
        {
            "id": "aaa_001",
            "name": "淡く儚いイメージ",
            "debug": "",
            "group": "AAAAA",
            "groupIndex": 0,
            "parameters": {
                "rc": [0.0, 0.0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1.0, 1.0],
                "gc": [0.0, 0.0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1.0, 1.0],
                "bc":  [0.0, 0.0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1.0, 1.0],
                "sa":[ 1.0, 1.0, 1.0],
                "ma":[ 1.0, 1.0, 1.0 ],
                "ha":[ 1.0, 1.0, 1.0 ],
                "saturation": 1.0,
                "brightness": 0.0,
                "contrast": 1.0,
                "sh":[0,0,0],
                "mh":[0,0,0],
                "hh":[0,0,0],
                "cf":[0.9,0.9,1.0,0.03]
            }
        }
    ]
}
"""
data = json.loads(json_data)
filters = data["filters"]

for filter_item in filters:
    print(f"フィルターID: {filter_item['id']}")
    print(f"フィルター名: {filter_item['name']}")
    print(f"グループ: {filter_item['group']}")
    print("パラメーター:")
    for key, value in filter_item["parameters"].items():
        print(f"  {key}: {value}")
    print("-" * 20)

特定のフィルターにIDでアクセス

def find_filter_by_id(filters, target_id):
    for filter_item in filters:
        if filter_item["id"] == target_id:
            return filter_item
    return None

target_filter = find_filter_by_id(filters, "aaaa_001")

if target_filter:
    print(f"フィルター名: {target_filter['name']}")
    print(f"カラーフィルター: {target_filter['parameters']['colorFilter']}")
else:
    print("指定されたIDのフィルターは見つかりませんでした。")

データ変更

# "awa_001"フィルターの彩度を変更
for filter_item in filters:
    if filter_item["id"] == "aaaa_001":
        filter_item["parameters"]["saturation"] = 1.2
        break

# 変更後の彩度を確認
target_filter = find_filter_by_id(filters, "aaaa_001")
print(f"変更後の彩度: {target_filter['parameters']['saturation']}")

JSON書き込み

with open("modified_filters.json", "w") as f:
    json.dump(data, f, indent=4)

ふむふむ

お気軽にコメントください!

スパム対応のためコメント認証に数日かかることがありますが、お気軽にコメントいただけると嬉しいです^^

コメント

タイトルとURLをコピーしました