【发布时间】:2015-08-04 15:18:12
【问题描述】:
我想将 Python 对象转换为 JSON 格式。
User 类的私有属性是使用属性定义的。方法to_Json()我找到了here
class User:
def __init__(self):
self._name = None
self._gender = None
@property
def name(self):
return self._name
@name.setter
def name(self, name):
self._name = name
@property
def gender(self):
return self._gender
@gender.setter
def gender(self, gender):
self._gender = gender
def to_Json(self):
return json.dumps(self, default=lambda o: o.__dict__, allow_nan=False, sort_keys=False, indent=4)
使用这个类和方法的输出是:
{
"_name": "Peter",
"_age": 26
}
去除 JSON 格式中的下划线的最简单方法是什么? (我想要“name”而不是“_name”)删除类中的下划线不是一个选项,因为我得到一个错误(最大递归深度)。我认为重命名属性的方法可以解决这个问题,但这是最好的解决方案吗?
重命名 json.dumbs 之前的所有键(请参阅 here)不是一种实用的方法,因为我的类比上面的示例更复杂。
那么,尽可能快地将 Python 对象转换为 JSON 格式的最佳做法是什么?
【问题讨论】: