【发布时间】:2021-03-25 00:31:24
【问题描述】:
使用 Python 和 JsonPickle,我如何使用特定的外壳序列化对象,例如 Camel Case、Pascal 等?下面的答案是手动完成的,但是寻找特定的 Jsonpickle 解决方案,因为它可以处理复杂的对象类型。
JSON serialize a class and change property casing with Python
https://stackoverflow.com/a/8614096/15435022
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))
【问题讨论】:
-
嗨。你试过我的解决方案吗?请随时提出相关问题。
标签: python python-3.x jsonpickle