folder Tahribat.com Forumları
linefolder Python
linefolder Python Da İki Json Dosyasını Karşılaştırıp Aynı Olan Veriyi Nasıl Silerim?



Python Da İki Json Dosyasını Karşılaştırıp Aynı Olan Veriyi Nasıl Silerim?

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    amg
    amg's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek

    Arkdaşlar merhaba,

    a.json ve b.json gibi iki tane veri dosyam var.

    PYTHON ile a.json ile b.json dosyasını karşılaştırıp a.json dosyasındaki veri eğer b.json da varsa b.json dosyasındaki veriyi silecek. Ama karşılaştırmayı bir veri üzerinden yapıp tüm objeyi silsin istiyorum. Örnekle açıklayayım.

     

    a.json dosyam aşağıdaki gibi olsun.

    [

        {

            "product_id": "13268545",

            "access_code": "-5279338310592077099",

            "productname": "et",

            "a_date": "20201105"

        },

        {

            "product_id": "886842582",

            "access_code": "1732975230992561156",

            "productname": "süt",

            "a_date": "20201113"

        },

        {

            "product_id": "634646243",

            "access_code": "-8575527032452453241",

            "productname": "yumurta",

            "a_date": "20201128"

        },

        {

            "product_id": "1246038945",

            "access_code": "-4788377036803659093",

            "productname": "peynir",

            "a_date": "20201201"

        }

    ]

     

    b.json dosyam da bu şekilde olsun.

    [

        {

            "product_id": "637838792",

            "access_code": "-2266310523074287239",

            "productname": "sucuk",

            "a_date": "20201109"

        },

        {

            "product_id": "634646243",

            "access_code": "2171791985064934947",

            "productname": "yumurta",

            "a_date": "20201119"

        },

        {

            "product_id": "625934893",

            "access_code": "1943869112759373188",

            "productname": "zeytin",

            "a_date": "20201101"

        },

        {

            "product_id": "1016318432",

            "access_code": "5700741327015244515",

            "productname": "yoğurt",

            "a_date": "20201205"

        },

        {

            "product_id": "1985625904",

            "access_code": "4876614294687336692",

            "productname": "ayran",

            "a_date": "20201203"

        }

    ]

     

    Karşılaştırmanın sadece "product_id" ile yapılmasını istiyorum. Zira ürün aynı olmasına rağmen "access_code" ve "a_date" bilgileri değişken "productname" de aynı iki dosyamda ama ben id üzerinden karşılaştırmak istiyorum. Örnekte "product_id": "634646243" ürünü iki dosyada da var o yüzden bu ürünün tüm bilgilerinin b.json dan silinmesini istiyorum. Yani özetle oluşmasını istediğim c.json dosyası şu şekilde olmalı.

    [

        {

            "product_id": "637838792",

            "access_code": "-2266310523074287239",

            "productname": "sucuk",

            "a_date": "20201109"

        },

        {

            "product_id": "625934893",

            "access_code": "1943869112759373188",

            "productname": "zeytin",

            "a_date": "20201101"

        },

        {

            "product_id": "1016318432",

            "access_code": "5700741327015244515",

            "productname": "yoğurt",

            "a_date": "20201205"

        },

        {

            "product_id": "1985625904",

            "access_code": "4876614294687336692",

            "productname": "ayran",

            "a_date": "20201203"

        }

    ]

     

    Bunu python da nasıl yapabilirim?

    amg tarafından 07/Ara/20 23:29 tarihinde düzenlenmiştir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    cukurova
    cukurova's avatar
    Kayıt Tarihi: 21/Aralık/2003
    Erkek

    Google da "python json comparator" olarak aratırsan birçok hazır kütüphane ve örnekler göreceksin. 👍

     

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    siyahbereli
    siyahbereli's avatar
    Kayıt Tarihi: 03/Ocak/2006
    Erkek

    Karşılaştırmalar için 2 ayrı not defterine kodları yapıştırıp Diffmarge isimli programla gözlemliyorum. Belki işine yarar.


    Yapmadıklarınıza pişman olmaktansa, Yaptıklarınıza pişman olun...Yapın pişman olun, yada yapmayın yine pişman olun.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    amg
    amg's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek
    cukurova bunu yazdı

    Google da "python json comparator" olarak aratırsan birçok hazır kütüphane ve örnekler göreceksin. 👍

     

    Bu şekilde arattım ama sonuç elde edemedim. Bulduklarımın tamamı satır bazlı kontrol ediyor.

  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek
    c = [bRow for bRow in b if bRow['product_id'] not in [aRow['product_id'] for aRow in a]]

    |sadece aptalların başarısı ders notu ile ölçülür|
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek
    import json

    file=open('a.json','r',encoding='utf-8')
    a=json.load(file)

    file=open('b.json','r',encoding='utf-8')
    b=json.load(file)

    c = [bRow for bRow in b if bRow['product_id'] not in [aRow['product_id'] for aRow in a]]

    cFile=open('c.json','w',encoding='utf-8')
    cFile.write(json.dumps(c,indent=4))

    |sadece aptalların başarısı ders notu ile ölçülür|
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    wert
    wert's avatar
    Kayıt Tarihi: 19/Eylül/2005
    Erkek

    hay türkçe karakterine sokayım geçen günde başk birşey için kaç saat uğramıştım 

    benim pcde tr karakter sorunu çıkardı

     


    |sadece aptalların başarısı ders notu ile ölçülür|
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    amg
    amg's avatar
    Kayıt Tarihi: 21/Ağustos/2005
    Erkek
    wert bunu yazdı
    import json

    file=open('a.json','r',encoding='utf-8')
    a=json.load(file)

    file=open('b.json','r',encoding='utf-8')
    b=json.load(file)

    c = [bRow for bRow in b if bRow['product_id'] not in [aRow['product_id'] for aRow in a]]

    cFile=open('c.json','w',encoding='utf-8')
    cFile.write(json.dumps(c,indent=4))

    Çok teşekkürler üstadım.

Toplam Hit: 1506 Toplam Mesaj: 8
python json json karşılaştırma json ayrıştırma