0

(使用python有一段时间了,但我的术语很弱,所以请耐心等待)

我有一堆我在 python 中相互添加的对象。我正在使用对象的__dict__属性(具有某种__init__功能self.__field)对对象进行序列化。我正在打印出对象json.dumps,用于我正在做的 API 端口的概念证明。问题是我正在使用名称修饰和 python 属性,因此当我打印时它看起来如下

{
"_Type1__field": {
    "A": {
        "_Type1-1__field": [
            {
                "_Type1-1-1__field": [
                    {
                        "_Type1-1-1-1__field": null,
                        "field": 1
                    },
                    {
                        "_Type1-1-1-1__field": null,
                        "field": 4
                    }
                ]
            },
            {
                "_Type1-1-2__field": [
                    {
                        "_Type1-1-2-1__field1": null,
                        "_Type1-1-2-1__field2": null,
                        "_Type1-1-2-1__field3": null,
                        "field1": {
                            "field": 3853579331
                        },
                        "field2": 1373546537126.0,
                        "field3": 1373632937126.0
                    }
                ]
            }
        ]
    }
}

是与财产对象一起被拾起的损坏吗?像Typex-xx这样的典型对象(Typex和Typex-x是外部对象)是这样设置的

class Type(inheritance):

    def __init__(self):
        self.__field= None
        self.__field2= {}

    @property
    def field(self):
        return self.__field

    @deviceId.setter
    def field(self, value):
        self.__field = value

    @property
    def field2(self):
        return self.__field2

    @field2.setter
    def field2(self, value):
        self.__field2 = value

这不是一个真正的问题,我只想知道发生了什么以及为什么每个字段都显示为None它的值。

4

1 回答 1

1

你有一个 XY 问题 - https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem而且你正在重新发明轮子。

使用pickle http://docs.python.org/2/library/pickle.html或更好的cPickle http://docs.python.org/2/library/pickle.html#module-cPickle序列化 Python 对象。

只要有可能,Python哲学就是batteries included如此使用。stdlib

于 2013-07-12T13:00:22.483 回答