我需要將使用我的類 Test 形成的物件的 python 串列轉換為字典,因為我需要將其保存在 .txt 檔案中。然后我需要在需要時將其翻譯回 python 物件串列,因為我需要更新它,結果不是我所期望的。我該怎么做?有更好的方法來做我需要的嗎?在網上找不到任何東西
class Test():
def __init__(self, var,var2):
self.var = var
self.var2 = var2
def dictionaryEncoder(self, contenuto):
json_string = json.dumps([self.__dict__ for self in contenuto])
return json_string
def dictionaryDecoder(self, letto):
pyLetto = json.loads(letto, object_hook=lambda d: SimpleNamespace(**d))
return pyLetto
Python串列的列印結果:
[<__main__.Test object at 0x000001AB9E6217E0>, <__main__.Test object at 0x000001AB9E621840>, <__main__.Test object at 0x000001AB9E6338E0>, <__main__.Test object at 0x000001AB9E141A20>]
然后翻譯成字典:
[{"var": 1, "var2": 11}, {"var": 2, "var2": 22}, {"var": 3, "var2": 33}, {"var": 4, "var2": 44}]
然后翻譯成字典然后回到python串列中?:
[namespace(var=1, var2=11), namespace(var=2, var2=22), namespace(var=3, var2=33), namespace(var=4, var2=44)]
uj5u.com熱心網友回復:
dictionaryDecoder使用中:
def dictionaryDecoder(self, letto):
return [Test(x['var'], x['var2']) for x in letto]
輸入:
[{"var": 1, "var2": 11}, {"var": 2, "var2": 22}, {"var": 3, "var2": 33}, {"var": 4, "var2": 44}]
輸出:
[<__main__.Test object at 0x7fcc5ea6d2e0>, <__main__.Test object at 0x7fcc5ea6d370>, <__main__.Test object at 0x7fcc5ea6d400>, <__main__.Test object at 0x7fcc5ea6d4f0>]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/492687.html
上一篇:{condition1:x(),condition2:y()}.get(True,None)如何在python中實際運行?
