我正在使用json泡菜将嵌套的python对象转换为json。Python类:
class Cvideo:
def __init__(self):
self._url = None
@property
def url(self):
return self._url
@url.setter
def url(self, value):
self._url = value序列化模块:
def create_jason_request(self, vid1: Cvideo):
vid1 = Cvideo()
vid1.url = entry['uploader_url'] # will get a leading underscore
vid1.notdefinedproperty = "test" # wont get a leading underscore in json
return jsonpickle.encode(vid, unpicklable=False)不幸的是,创建的json描述的是_url而不是url。在使用pythin属性时,如何避免在json中引导下划线创建?谢谢。
发布于 2018-11-26 22:17:21
这是完全正常的行为。您的实例状态是存储的,而不是外部API。属性不是状态的一部分,它们仍然是方法,因此是API的一部分。
如果您必须将url存储在JSON结果中,那么使用 method返回一个更能反映您的状态的字典。您必须创建一个匹配的__setstate__方法:
def __getstate__(self):
return {'url': self._url}
def __setstate__(self, state):
self._url = state.get('url')https://stackoverflow.com/questions/53489910
复制相似问题