2012-07-12 36 views
2

我想从linkedin获取信息,但不断收到以下错误消息?类型错误:字符映射必须返回整数,无或unicode

我已经搜遍了,但我看到的修复只是为那些在使用djangopiston时出现错误。谁能帮我解决这个问题吗?

Environment: 


Request Method: GET 
Request URL: http://127.0.0.1:8000/jobs/1/match/ 

Django Version: 1.3.1 
Python Version: 2.7.2 
Installed Applications: 
['django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.sites', 
'django.contrib.messages', 
'django.contrib.flatpages', 
'django.contrib.admin', 
'django.contrib.staticfiles', 
'compress', 
'south', 
'filer', 
'easy_thumbnails', 
'registration', 
'socialregistration', 
'socialregistration.contrib.facebook', 
'socialregistration.contrib.twitter', 
'socialregistration.contrib.linkedin', 
'socialregistration.contrib.openid', 
'privatebeta', 
'api', 
'profiles', 
'jobs', 
'misc'] 
Installed Middleware: 
('django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.middleware.csrf.CsrfResponseMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'socialregistration.contrib.facebook.middleware.FacebookMiddleware', 
'socialregistration.contrib.linkedin.middleware.LinkedInMiddleware', 
'misc.middleware.SubdomainMiddleware', 
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware') 


    Traceback: 
    File "/home/arlus/jobmatch/local/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
    File "/home/arlus/jobmatch/local/lib/python2.7/site-packages/django/utils/decorators.py" in _wrapped_view 
    93.      response = view_func(request, *args, **kwargs) 
    File "/home/arlus/jobmatch/local/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 
    23.     return view_func(request, *args, **kwargs) 
    File "jobs/views.py" in match 
    60.   matches = linkedin_api.get_connections(fields=['headline', 'summary',]).encode('utf-8') 
    File "../lib/linkedin/linkedin.py" in get_connections 
    291.    response = self._do_normal_query(raw_url) 
    File "../lib/linkedin/linkedin.py" in _do_normal_query 
    757.          signature_dict, self._access_token_secret, method, update=False) 
    File "../lib/linkedin/linkedin.py" in _calc_signature 
    789.   hashed = hmac.new(self._calc_key(token_secret), signature_base_string, sha) 
File "/usr/lib/python2.7/hmac.py" in new 
    133.  return HMAC(key, msg, digestmod) 
File "/usr/lib/python2.7/hmac.py" in __init__ 
    72.   self.outer.update(key.translate(trans_5C)) 

    Exception Type: TypeError at /jobs/1/match/ 
    Exception Value: character mapping must return integer, None or unicode 

回答

0

很难说,但在某处urls.py和views.py是匹配的,你应该检查传递的对象的类型。它可能没有预期的价值。

例如/ jobs/1/match,1可能预期为int,但结果为str。

0

也许是因为文本是以unicode形式输入的,请尝试key.encode.('UTF-8')

相关问题