json.dumpする際に、sort_keysをTrueとすることで、dictionallyのkeyでソートする
import json class MyClass: def __init__(self, a, c, b): self.a = a self.c = c self.b = b obj = MyClass(2, 4, 6) string = json.dumps(obj.__dict__) print(string) string = json.dumps(obj.__dict__, sort_keys=True) print(string)
$ python3 test.py
{“a”: 2, “c”: 4, “b”: 6}
{“a”: 2, “b”: 6, “c”: 4}
なるほど、これで下のコードが何をやってるのか理解できたわ
import hashlib import json from datetime import datetime import random class Block: def __init__(self, index, previous_hash, timestamp, data, validator): self.index = index self.previous_hash = previous_hash self.timestamp = timestamp self.data = data self.validator = validator self.hash = self.calculate_hash() def calculate_hash(self): block_dict = self.__dict__ if 'hash' in block_dict: del block_dict['hash'] block_string = json.dumps(block_dict, sort_keys=True).encode() return hashlib.sha256(block_string).hexdigest()