Dict to self and self to dict methodları oluşturma

#1

Merhabalar,

Dosyadan okudugum satır dict yapısında.
okuma işleminden aldığım veriyi return etme
return edilen veriyi instance olarak (self) nasıl manipüle edebilirim.
sonrasında da tekrar dosyaya yazma işlemi var.

örnek teşkil edecek, bu yapıda bir calışması olan var mıdır?

0 Likes

#2

Herkese Merhaba,

Derdimi anlatamamış olabilirim. Bu sebeble tekrar ifade etmeye çalışacağım.

Ekrandan bilgilerini alarak oluşturduğum bir nesneye ait bilgileri sözlük yapısında txt dosyasına kaydediyorum.
örnek:
{‘ID’: ‘555444321’, ‘Name’: ‘Aişe Hüma KOÇ’}

Daha sonra başka bir method ile txt dosyasından search ettiğim kaydı buluyorum.
ilgili satırı zaten sözlük formatında kayıtlı duruyor.
bu sözlüğün atandığı değişkeni, ilk başta oluşturduğum nesne gibi bir instance nesneye dönüştürmenin yol nedir?

0 Likes

#3

Merhaba,

Sorunuzu yanlış anlamış olabilirim. Sanırım dosyaya yazarken json.dumps gibi bir yapıyla yazmıyorsunuz. Direk olarak {‘ID’: ‘555444321’, ‘Name’: ‘Aişe Huma KOÇ’} bu şekilde dosyaya yazarsanız, tekrardan dosyadan okurken aynı formatta kullanmakta zorlanabilirsiniz. Ekstra olarak işlemler yaparak tekrardan dict yapısına dönüştürmeniz gerekecektir. Önerim şu şekilde;

Dosyaya yazarken json.dumps() olarak yaz.

Dosyadan tekrar okurken json.loads() olarak dict veri türüne rahatlıkla çevirebilirsin.

Eğer probleminiz bu ise ve yazdıklarımı anlamassanız bir örnek verebilirim.

0 Likes

#4

Merhaba,
ilginiz için teşekkür ederim.
bu dili öğrenmeye çalışıyorum.
dosyaya yazarken:
f.write(""+data+"\n") yöntemini kullanabiliyorum.
başka bir yöntem için örnek olursa sevinirim.

@author: salim.koc
‘’’
class Contacts():

def __init__(self):
    self.ID=input("Enter ID :")
    self.Name=input("Enter Name :")

    onay=input("Do you want to Save entered person info? 'y or not'\n")
    if onay == "y":
        self.addContact()
        print("Your Datas has been Saved...")

def addContact(self):
    result=str(vars(self))
    with open("c:/temp/x.txt", "a+") as f:
        f.write(""+result+"\n")
0 Likes

#6

str'nin tersini mi ariyorsun?


Sozlukleri dosyaya kaydedip sonra okumayi soruyor olsaydin, veya dosya txt olmasaydi veya kayit search’unu dosyada yapmasaydin her seyi 1-2 satirda cozecek cozumler vardi, ama su halde string parse etmek durumundasin.

{} arasini bul, tirnaga kadar ilerle, ikinci tirnaga kadar olani al key olarak kaydet, iki noktayi bul, degeri al, virgulu bul… Elle parser yazabilirsin.

Bir ihtimal kutuphanesi vardir da, zannetmiyorum. Cok spesifik bir sey ariyorsun.

0 Likes

#7

addContact fonksiyonu icinde datayi dosyaya yazarken;

import json  # py dosya basina

def addContact(self):
    result = str(vars(self))
    with open("c:/temp/x.txt", "a+") as f:
        f.write(json.dumps(result) + "\n")

Dosyadan okurken tam tersi olarak json.loads() yapicaksiniz

0 Likes

#8

Merhabalar,
sizin önerinizi de görmek isterim.
özellikle txt olduğunda neler etkileniyor?

iyi çalışmalar.

0 Likes

#9

Dosyanin uzantisi hic bir seyi etkilemiyor*. Icerigi, yazilma ve okunma sekilleri onemli. Pyhon degiskenlerini saklayip daha sonra geri okumak icin tasarlanmis bir suru dosya formati ve kutuphane var. Amator, el yapimi ve bug’larla dolu cozumlerdense onlardan birini kullanmak hem zaman hem de akil sagligi tasarrufu yapacaktir.

Eger ogrenme amacli degilse tabi. Ogrenmek icin, her turlu tekerlek yeniden icat edilebilir.


*: Windows’ta dosyanin hangi program ile acilacagi disinda.

0 Likes