使用json转储的python名称

时间:2013-07-12 12:56:01

标签: python json

(一直在使用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-x-x(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及其值。

1 个答案:

答案 0 :(得分: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