Python
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?
-
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 -
-
Karşılaştırmalar için 2 ayrı not defterine kodları yapıştırıp Diffmarge isimli programla gözlemliyorum. Belki işine yarar.
-
-
c = [bRow for bRow in b if bRow['product_id'] not in [aRow['product_id'] for aRow in a]]
-
-
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ı
-
wert bunu yazdı
Çok teşekkürler üstadım.