我有以下的字典,包含以下數據:創建基於另一個字典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