Postingan lainnya
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
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'Namanya adalah {self.name}, tinggal di {self.address}'
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>
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)