Python Yeni yazılan verinin, eski veriyi silip yeni veriyi kaydetmesi

Yok yok sanırım anladım. r+ kullanacağım ve neler olacak göreceğim. Hemen deniyorum teşekkür ederim.

Harika gözüküyor anlatımınız teşekkür ederim. Ben hep karmaşık şekilde yaptım kodlamayı ve hep öyle çalıştırdım Tekrargözden geçirip anladığımda deneyeceğim sizin de dediğinizi. Çok teşekkür ederim!

Dostum, nasıl oldu bilmiyorum ama sadece 1 şey uzaktayız. @TheAny hocamın dediklerini de dikkate alarak \n'den vazgeçip sizin de bu fikrinizle elimden geldiğince bir şeyler denedim:
Python:
import tkinter as tk
from tkinter import messagebox
import json
import os

def load_data():
    try:
        with open("db/klasor_nolar.json", "r") as file:
            return json.load(file)
    except FileNotFoundError:
        return {}

def save_data(data):
    existing_data = load_data()  # Mevcut veriyi yükleyin
   
    for klasor_no, sirketler in data.items():
        if klasor_no in existing_data:
            existing_data[klasor_no].extend(sirket for sirket in sirketler if sirket not in existing_data[klasor_no])
        else:
            existing_data[klasor_no] = existing_data.get(klasor_no, []) + sirketler

    with open("db/klasor_nolar.json", "w") as file:
        json.dump(existing_data, file)

klasor_nolar = load_data()

def sirket_ekle():
    sirket_adi = entry_sirket.get().upper()
    klasor_no_str = entry_klasor.get()

    try:
        klasor_no = int(klasor_no_str)
        if klasor_no > 0:
            if klasor_no in klasor_nolar:
                klasor_nolar[klasor_no].append(sirket_adi)
                sonuc = f"{sirket_adi} şirketi {klasor_no} numaralı klasöre eklendi."
            else:
                klasor_nolar[klasor_no] = [sirket_adi]
                sonuc = f"{sirket_adi} şirketi {klasor_no} numaralı klasöre eklendi."
            
            # Verileri kaydet
            save_data(klasor_nolar)
        else:
            sonuc = "Hata: Klasör numarası pozitif bir tam sayı olmalıdır."
    except ValueError:
        sonuc = "Hata: Klasör numarası geçersiz."

    result_text.delete(1.0, tk.END)
    result_text.insert(tk.END, sonuc)

Bunu yaptıktan sonra da programı kapatarak, kaydedip çıktım. Önce kaydedilmeyen .json dosyasını göstereceğim:

{"1": ["TEST1"], "2": ["ATAK MADEN\u0130", "DENTA\u015e AMBALAJ", "D\u00d6NMEZ DEBR\u0130YAJ", "HEDEF HOLD\u0130NG", "ENEKO HAVALANDIRMA"], "3": ["SEY\u0130TLER K\u0130MYA", "\u0130ZELTA\u015e \u0130ZM\u0130R", "L\u0130NDE OPSAN"], "4": ["TESTER TEST"], "5": ["\u00d6Z AS\u0130L", "FADE GIDA"], "6": ["GREENF\u0130T PLAST\u0130K", "HEDEF G\u0130R\u0130\u015e\u0130M", "ZEN G\u0130R\u0130\u015e\u0130M"], "7": ["ATAYLAR \u00d6RME", "\u0130STTELKOM \u0130STANBUL", "\u0130STANBUL SPOR", "METEOR END\u00dcSTR\u0130", "METEOR \u0130N\u015eAAT", "TAR\u0130\u015e ZEYT\u0130N"], "8": ["HMS MAK\u0130NA", "BERKE ELEKTR\u0130K", "Z\u00dcLF\u0130KARLAR K\u0130MYEV\u0130", "TESLA ENERJ\u0130", "AK\u00c7A K\u0130MYEV\u0130"], "9": ["KZC \u0130\u00c7", "\u0130LKNAK SU", "ALTINBA\u015e PETROL"], "10": ["D\u0130NAM\u0130K ISI", "\u015eANLI \u0130LA\u00c7", "AVOD KURUYEM\u0130\u015e", "\u0130ZDEM\u0130R ENERJ\u0130"]}

Bu ise kaydedilip çıkıldığındaki hali:

{"1": ["TEST2", "TEST1"], "2": ["ATAK MADEN\u0130", "DENTA\u015e AMBALAJ", "D\u00d6NMEZ DEBR\u0130YAJ", "HEDEF HOLD\u0130NG", "ENEKO HAVALANDIRMA"], "3": ["SEY\u0130TLER K\u0130MYA", "\u0130ZELTA\u015e \u0130ZM\u0130R", "L\u0130NDE OPSAN"], "4": ["TESTER TEST"], "5": ["\u00d6Z AS\u0130L", "FADE GIDA"], "6": ["GREENF\u0130T PLAST\u0130K", "HEDEF G\u0130R\u0130\u015e\u0130M", "ZEN G\u0130R\u0130\u015e\u0130M"], "7": ["ATAYLAR \u00d6RME", "\u0130STTELKOM \u0130STANBUL", "\u0130STANBUL SPOR", "METEOR END\u00dcSTR\u0130", "METEOR \u0130N\u015eAAT", "TAR\u0130\u015e ZEYT\u0130N"], "8": ["HMS MAK\u0130NA", "BERKE ELEKTR\u0130K", "Z\u00dcLF\u0130KARLAR K\u0130MYEV\u0130", "TESLA ENERJ\u0130", "AK\u00c7A K\u0130MYEV\u0130"], "9": ["KZC \u0130\u00c7", "\u0130LKNAK SU", "ALTINBA\u015e PETROL"], "10": ["D\u0130NAM\u0130K ISI", "\u015eANLI \u0130LA\u00c7", "AVOD KURUYEM\u0130\u015e", "\u0130ZDEM\u0130R ENERJ\u0130"], "1": ["TEST2"]}

Gördüğünüz gibi 1 no'lu dosyaya "TEST2" şirketini ekledim. İlk kategoride kaydedilmiş olurken, aynı zamanda yazının sonunda da kaydedildiği için sadece son kaydedilen kısmı gösteriyor ve sanki 1 no'lu klasörde sadece "TEST2" şirketi varmış gibi gözüküyor.


Bunu çözersek her şey bitiyor! Çok heyecanlıyım şu anda.
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…