给出以下JSON结构:
[{'name': 'test', 'age': 19, 'extra': {'new_field': 1, 'new_field_2': 2}}]
和这个python结构:
Record = namedtuple('Record', ['name', 'age', 'extra'])
要将json字符串解码为python对象,我可以这样做:
def decoder_one(raw_data):
data = json.loads(raw_data)
for record in data:
yield Record(**data)
以及:
def _data_hook(data):
if 'extra' in data:
return Record(**data)
return data
def decoder_two(raw_data):
return json.loads(raw_data, object_hook=_data_hook)
使用一个优于另一个是否有好处?