Python序列化类并使用JsonPickle更改属性大小写
使用 Python 和 JsonPickle,如何使用特定的大小写(例如 Camel Case、Pascal 等)序列化对象?下面的答案是手动完成的,但是寻找特定的 Jsonpickle 解决方案,因为它可以处理复杂的对象类型。
JSON 序列化一个类并使用 Python 更改属性大小写
/sf/answers/602986751/
class HardwareSystem:
def __init__(self, vm_size):
self.vm_size = vm_size
self.some_other_thing = 42
self.a = 'a'
def snake_to_camel(s):
a = s.split('_')
a[0] = a[0].lower()
if len(a) > 1:
a[1:] = [u.title() for u in a[1:]]
return ''.join(a)
def serialise(obj):
return {snake_to_camel(k): v for k, v in obj.__dict__.items()}
hp = HardwareSystem('Large')
print(json.dumps(serialise(hp), indent=4, default=serialise))