gpt4 book ai didi

Python to json 将键与成员名称而不是属性名称放在一起

转载 作者:行者123 更新时间:2023-11-28 16:45:46 24 4
gpt4 key购买 nike

我想将 Python 对象转换为 JSON,我正在使用类似

的成员函数来执行此操作
def to_json(self):
return json.dumps(self.__dict__)

问题是我有成员_name 和属性名

@property
def name(self):
return self._name
@name.setter
def name(self, value):
self._name = some_validation_ove_name(value)

在结果 JSON 中,我使用键 _name 获取数据,但我想成为 name。如果不手动创建 JSON,这可能吗?

最佳答案

可能。当然。什么是最好的方法是更好的问题。在此示例中,这应该适合您,但如果您有其他情况,这可能不是理想的解决方案:

def to_json(self):
return json.dumps({k.strip('_'): v for k, v in self.__dict__.items()})

示例

import json

class Foo(object):

def __init__(self):
self.foo = "foo"
self.__bar__ = "__bar__"
self.baz = "_baz"

@property
def name(self):
return self._name

@name.setter
def name(self, value):
self._name = value

def to_json(self):
return json.dumps({k.strip('_'): v for k, v in self.__dict__.items()})

foo = Foo()
foo.name = "name"
print foo.to_json()

输出

{"baz": "_baz", "foo": "foo", "bar": "__bar__", "name": "name"}

关于Python to json 将键与成员名称而不是属性名称放在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14027989/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com