用于错误消息的Python数组

时间:2014-01-22 10:49:38

标签: python list

目前我显示的错误如下:

Python API:

errors = {}
errors['message'] = 'Sorry we could not log you in.'
return self.create_response(request, {'errors':[errors]}, HttpUnauthorized)

然后在Javascript中我将它们显示为:

for (var key in object.data.errors) {
     $scope.errors.push(object.data.errors[key].message);
   }

正如你所看到的,javascript循环了一系列错误,但是在Python中如果我尝试这样做:

errors = {}
errors['message'] = 'Sorry we could not log you in.'
errors['message'] = 'another error'
return self.create_response(request, {'errors':[errors]}, HttpUnauthorized)

因为此代码仅附加最后一个错误,第一个错误将被覆盖。

如何保持相同的主体,但在Python中允许自己实际附加错误消息?

3 个答案:

答案 0 :(得分:1)

看看你的例子试试这个。

            response = {}
            response['errors'] = []
            response['errors'].append({'message': 'another error message'})
            response['errors'].append({'message': 'Sorry we could not log you in.'})
            return self.create_response(request, response, HttpUnauthorized)

这将为您提供一个错误列表,这些错误将与您提供的javascript示例一起使用。你也可以这样做:

 response['errors'].append({'message': 'Sorry we could not log you in.', 'code', '22'}) 

答案 1 :(得分:1)

您正在制作错误的字典,但是您使用相同的密钥(message)来处理两个错误。您应该改为列出错误:

errors = []
errors.append('Sorry we could not log you in.')
errors.append('another error')
return self.create_response(request, {'errors': errors}, HttpUnauthorized)

然后迭代此列表。

for (var key in object.data.errors) {
    $scope.errors.push(object.data.errors[key]); /* .message isn't necessary now */
}

如果要添加有关错误的更多信息,可以列出dict:

errors.append({'message': 'Sorry we could not log you in.', 'uid': 42})
errors.append({'message': 'another error', 'uid': 1337})  
# uid parameter is imaginary here, it's just for the example

答案 2 :(得分:0)

errors成为dict有什么意义?您是否使用'message'以外的任何值?

无论如何,你可以把它列为一个清单:

errors['message'] = []                                     ## initialise to empty list
errors['message'].append('Sorry we could not log you in.') ## add first error message
errors['message'].append('another error')                  ## add next