从对象列表到字典,然后从字典到对象列表



我需要翻译一个由my类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)]

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>]

最新更新