仅在一个开发环境中发生的Keyerror

时间:2013-08-01 02:48:36

标签: python django

我遇到了一个奇怪的问题....我有以下代码在我的本地开发中完美运行,但是当我在项目开发服务器中使用相同的代码时,我得到一个KeyError:'firstname' 要么我在这里遗失了一些非常愚蠢的东西,要么就是我不知道的东西。

def register(self,request, **kwargs):


        try:    
            data = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))
            print data
            print " reached register"
            email = data['email']
            password = data['password']
            firstname = data['firstName']
            lastname = data['lastName']
            newdata = {'email' : email , 'password1': password , 'password2':password, 'firstname':firstname , 'lastname':lastname }

日志输出如下:

[Wed Jul 31 21:42:24 2013] [error] {u'lastName': u'Adams', u'password': u'pass', u'email': u'samad@g.com', u'firstName': u'Sam'}
[Wed Jul 31 21:42:24 2013] [error]  reached register
[Wed Jul 31 21:42:24 2013] [error] ERROR:root:'firstname'
[Wed Jul 31 21:42:24 2013] [error] Traceback (most recent call last):
[Wed Jul 31 21:42:24 2013] [error]   File "/home/ubuntu/djangoEC/userdetails/api.py", line 102, in register
[Wed Jul 31 21:42:24 2013] [error]     firstname = data['firstName']
[Wed Jul 31 21:42:24 2013] [error] KeyError: 'firstname'
Phew,任何想法?

2 个答案:

答案 0 :(得分:1)

您的代码会查找'firstName',但例外情况为'firstname'。注意这个案子。您的真实代码中的'firstname'(或您的真实数据中包含'firstname',或其他一些案例不匹配错误),或data是一些奇怪的类似dict的对象,它会降低键在查找。我怀疑这是第一个答案。

答案 1 :(得分:-1)

@tdelaney回答。使用数据[u'firstName']解决了这个问题。