你是否还在为json.dumps输出的json-string太丑而悲伤? 你是否倦怠于每次利用ide格式化手动美化结果? 一个入参解决你的问题!

json.dumps(self, indent=4)

另外一个入参可以处理非dict格式的变量,使其也能转化成json-string。

json.dumps(self, default=lambda o: o.__dict__, indent=4)

使用案例:

class DataSource:
    def __init__(self, instruction, output, dataset_id):
        self.instruction = instruction
        self.output = output
        self.dataset_id = dataset_id
 
    def to_json(self):
        return json.dumps(self, default=lambda o: o.__dict__, indent=4)