folder Tahribat.com Forumları
linefolder Python
linefolder Dict Tipindeki Değişkene Veri Ekleme Problemi



Dict Tipindeki Değişkene Veri Ekleme Problemi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Merhaba arkadaşlar,

    python ile yazdığım bir sınıfta gelen dict verileri parse edip tek tek başka bir dict değişkene ekliyorum.  Aldığım verileri increment olan bir int değişkenin değerini key olarak ve verilerimi de value olarak ekliyorum. 

    Return edilen self.medias ın olması gereken yapı şöyle=>    { 0: { a verisi },    1: { b verisi },    2: { c verisi }, }

    Dönen sonuç ise böyle=> { 0: { c verisi },    1: { c verisi },    2: { c verisi }, }

    Velhasılı kelam kodları aşağıda paylaşayım.

    kodlara buradan da ulaşabilirsiniz => https://codepaste.net/pxj734

     

        def setMediasByUsername(self, username, count=10, maxId=""):
            index = 0   # gelen json veriden işleme tabi tutulan veri sayısı. Count kadar veri çekebilmek için.
            moreAvailable = True    # Çekilecek veri oldukça True döner.
            maxId = maxId
            while index < count and moreAvailable:
                url = ep.getUrlAccountJsonMedias(username=username, maxId=maxId)
                # url e get ile requests attık.
                r = requests.get(url=url)
                # Eğer 404 hata kodu dönerse hata mesajını atayıp False döndürüyoruz.
                if r.status_code == 404:
                    ex.setErrorMessage(errorCode="404", errorNote="Girilen username ile kullanıcı bulamadık.")
                    return False
                # Eğer 200 dışında bir kod dönmüşse hata mesajı oluşturulup False return edilir.
                elif r.status_code != 200:
                    ex.setErrorMessage(errorCode=r.status_code,
                                       errorNote="Username ile yapılan medya paylaşımları çekilirken bir hata oluştu.")
                    return False
                elif type(r.json()) != dict:
                    ex.setErrorMessage(errorCode=type(r.json()),
                                       errorNote="Username ile yapılan paylaşımlar çekilirken istenmeyen veri tipi döndü.")
                    return False
                # Dönen sonucu json olarak alıp datas değişkenine atadık.
                datas = r.json()
                # daha çekilecek veri varsa onu da aldık.
                moreAvailable = datas["more_available"]
                # Çekilen son verinin id si maxId olarak atandı.
                maxId = datas["items"][len(datas["items"]) - 1]["id"]
                # Gelen her veriyi tek tek parse edip ekliyoruz.
                for i in datas["items"]:
    self.medias[index] = mp.getMediaParse(data=i) # print("index = {}, \ndata = {}\nmedias = {}".format(index, s, self.medias)) index += 1 # Eğer istenen veri kadarını aldıysak for içinden çıkarız. if index >= count: break return self.medias

     

    coder2 tarafından 28/Eki/17 21:03 tarihinde düzenlenmiştir

    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek
    mp.getMediaParse(data=datas["items"][i])   ile gelen veri her defasında farklı oluyor yani dönen veride sorun yok.  
    index te normal şekilde her defasında artıp geliyor. Fakat medias a ekleyince nasıl oluyorsa tüm veriler aynı oluyor.
    İşlemin aynısını kendi yazdığım birkaç satırlık datalarla simüle ediyorum öyle bir sorun yok.

    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Bir defaya mahsus up olsun.


    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    coder2
    coder2's avatar
    Kayıt Tarihi: 15/Mart/2007
    Erkek

    Konuyu bir arkadaşın yardımıyla çözdük. dict içinde dict tanımlarken aynı instance üzerinde işlem yapıldığı için sorun oluşuyormuş aşağıdaki kodu değiştirerek sorun çözüldü.


    Eski hali
    self.medias[index] = mp.getMediaParse(data=i)
    Yeni hali
    self.medias[index] = dict(mp.getMediaParse(data=i))

    Önceleri Kızlar Utanınca Kızarırdı Şimdilerde Kızarınca Utanıyorlar..
Toplam Hit: 1141 Toplam Mesaj: 4
python