import json import uuid with open('deck.json', 'r', encoding='utf-8') as f: data = json.load(f) original_notes = data['notes'] new_notes = [] existing_signatures = set() def signature(front0, front1, back): return f"{front0}||{front1}||{back}" for note in original_notes: fields = note['fields'] if len(fields) < 3: continue original_front = fields[0] # "ich" original_back = fields[1] # "jag" original_audio = fields[2] # "[sound:Jag-4718d0.mp3]" sig = signature(original_front, original_audio, original_back) reversed_sig = signature(original_back, original_audio, original_front) if note['guid'].startswith('rev-') or reversed_sig in existing_signatures: continue new_note = { "__type__": "Note", "fields": [ original_back, # Feld 0: Frage Text (Antwort aus Original) original_audio, # Feld 1: Frage Audio (MP3 aus Original) original_front # Feld 2: Antwort Text (Frage aus Original) ], "guid": f"rev-{uuid.uuid4()}", "note_model_uuid": note["note_model_uuid"], "tags": note.get("tags", []) + ["reversed"] } new_notes.append(new_note) existing_signatures.add(sig) existing_signatures.add(reversed_sig) data['notes'].extend(new_notes) with open('crowdanki_export_dupliziert.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=2)