我有以下的字典,包含以下数据:创建基于另一个字典Python字典
response = {"status":"ERROR","email":"EMAIL_INVALID","name":"NAME_INVALID"}
我想基于被suposed看起来像“响应”创建一个新的字典以下:
{'api_error': {'list': [{'converted_value': 'No special characters allowed.',
'field': 'name',
'value': 'NAME_INVALID'},
{'converted_value': 'invalid email',
'field': 'email',
'value': 'EMAIL_INVALID'}],
'status': 'ERROR'},
'email': 'EMAIL_INVALID',
'email_label': 'invalid email',
'name': 'NAME_INVALID',
'name_label': 'No special characters allowed.',
'status': 'ERROR'}
到目前为止,我已经能够做到以下几点:
ret = {}
for k in response:
if k != 'status':
ret[k+"_label"] = convert(response[k])
ret[k] = response[k]
else:
ret[k] = convert(response[k])
其中“CONVER t'函数转换每个响应值。例如NAME_INVALID被转换为'不允许特殊字符'。等等。以下是上述代码正在执行的输出:
{"status":"ERROR","name_label":"No special characters allowed.",
"email_label":"invalid email","name":"NAME_INVALID","email":"EMAIL_INVALID"}
我遇到了创建字典其余部分的问题。密钥为'api_error'的人。什么是最有效的方式呢?
哪里'name_label'价值出台?我在原始回复或代码示例中没有看到它。 – Bryan 2013-05-02 12:39:27
它来自一个名为convert的函数,该函数将值转换为使用的相应语言。例如对于NAME_INVALID,它返回'不允许特殊字符'。 – hjelpmig 2013-05-02 12:41:47
您可能还想发布该功能以获得更完整的答案。 – Bryan 2013-05-02 12:42:39