def parse_parameters_list(dict_list):
"""
>>> import arrow
>>> returned = parse_parameters_list([
... { "name": "accounts:is_2sv_enrolled", "boolValue": False },
... { "name": "accounts:last_name", "stringValue": "Smith" },
... { "name": "accounts:drive_used_quota_in_mb", "intValue": "0" },
... { "name": "accounts:creation_time",
... "datetimeValue": "2010-10-28T10:26:35.000Z" },
... ])
>>> returned == {
... "accounts:is_2sv_enrolled": False,
... "accounts:last_name": "Smith",
... "accounts:drive_used_quota_in_mb": 0,
... "accounts:creation_time": arrow.Arrow(2010, 10, 28, 10, 26, 35),
... }
True
>>> parse_parameters_list([{ "name": "fakeValue", "otherType": False }])
Traceback (most recent call last):
...
ValueError: Failed to determine appropriate type for parameter 'fakeValue'
"""
retval = dict()
for item_dict in dict_list:
if 'boolValue' in item_dict:
value = item_dict['boolValue']
elif 'intValue' in item_dict:
value = int(item_dict['intValue'])
elif 'stringValue' in item_dict:
value = item_dict['stringValue']
elif 'datetimeValue' in item_dict:
value = arrow.get(item_dict['datetimeValue'])
else:
raise ValueError("Failed to determine appropriate type for parameter "
"{!r}".format(item_dict['name']))
retval[item_dict['name']] = value
return retval
评论列表
文章目录