menyimpan json pada object python

saya ingin bertanya apakah ada yang salah dari cara menyimpan data json pada object python

berikut kode saya:

import json
class Data1:
    def __init__ (self, Date, Door, Name, Status, Time):
        self.Name = Name
        self.Date = Date
        self.Time = Time
        self.Door = Door
        self.Status = Status

    @classmethod
    def from_json(cls, json_string):
        json_dict = json.loads(json_string)
        return cls(**json_dict)

    def __repr__ (self):
        return f'<Data1 {self.Name}>'
def desJson(json_string):
    json_string = json_string.replace('b','')
    json_string = "'"+"'"+json_string+"'"+"'"
    print(json_string)
    data = Data1.from_json(json_string)
    print(data.Name)
    print(data.Date)
    print(data.Time)
    print(data.Door)
    print(data.Status)

    json_string =(str(msg.payload))
    desJson(json_string) #didalam json_string terdapat string format json : '{"Date":"notSetA","Door":"Pintu Kamar","Name":"Denta","Status":"Locked","Time":"notSetA"}'

tetapi saat melakukan print seperti print(data.Name) tidak mengeluarkan apa-apa akan tetapi saat print(json_string) data json_string tidak kosong, kira-kira kenapa ya? terimakasih sebelumnya

avatar marcellusdenta_google
@marcellusdenta_google

1 Kontribusi 0 Poin

Diperbarui 3 tahun yang lalu

1 Jawaban:

<div>Halo,<br>saya sudah mereplika kodingan di atas, mengeditnya sedikit, dan dapat dijalankan dengan lancar</div><pre>import json

class Data1: def init(self, name, address): self.name = name self.address = address

@classmethod
def from_json(cls, json_string):
    json_dict = json.loads(json_string)
    return cls(**json_dict)

def __repr__(self):
    return f&#039;Namanya adalah {self.name}, tinggal di {self.address}&#039;

def desJson(json_string): # saya membuang dua baris pertama pada fungsi ini # dari kodingan agan print(json_string) data = Data1.from_json(json_string) print(data)

desJson('{"name":"kodergan", "address":"rahasia"}')</pre><div><br>Dari kodingan milik agan, apakah agan memang sengaja memanggil desJson() dari dalam desJson() sendiri? (rekursif)<br><br>Kurang lebih seperti itu, semoga membantu</div>

avatar kodergan
@kodergan

51 Kontribusi 58 Poin

Dipost 3 tahun yang lalu

Tanggapan

sebelumnya terimakasih gan, jdi begini nilai pada json string itu saya langsung terima dalam bentuk json format dri server, jadi jsonnya tidak saya tulis sendiri, sehingga saya ingin menyimpan jsonfromat tersebut ke object json string, lalu saya pecah lgi json format tadi dan saya masukkan nilainya ke object-object. tetapi object2 itu malah jadi kosong padahal jsonformat dalm object json string itu ada isinya. itu kira2 kenapa ya?

Bisa coba diprint manual gan di tiap-tiap bagiannya, misal sebelum masuk ke fungsi desJson(), ketika di dalam fungsi desJson(), dst. barangkali bisa ketemu salahnya dimana. (Karena tidak terlalu berpengaruh juga baik asal data dari server ataupun buatan sendiri, selama formatnya sama, maka seharusnya tidak ada masalah ketika masuk ke dalam fungsi terkait)

Login untuk ikut Jawaban