Получить данные из исключения klout KloutHTTPError
Я пытаюсь получить klouID с помощью API-интерфейса Python kloud. Я беру имя пользователя из базы данных Монго и пытаюсь получить kloudid, используя это имя пользователя. Я заметил, что я могу получить идентификаторы только для некоторых пользователей (они или некоторые их подписчики зарегистрированы в klout). Таким образом, я хочу создать попытку - за исключением того, чтобы преодолеть raise KloutHTTPError( e, uri)
klout.api.KloutHTTPError: ERROR: HTTP Error 404: Not Found
ошибка для пользователей, что klout не может вернуть kloudid.
Мой код:
for cursor in collection.find().limit(100):
name = cursor['database'].get('name')
print name
kloutId = k.identity.klout(screenName=name).get('id')
score = k.user.score(kloutId=kloutId).get('score')
print "User's klout score is: %s" % (score)
# By default all communication is not secure (HTTP). An optional secure parameter
# can be sepcified for secure (HTTPS) communication
k = Klout('...', secure=True)
# Optionally a timeout parameter (seconds) can also be sent with all calls
score = k.user.score(kloutId=kloutId, timeout=5).get('score')
1 ответ
Решение
Я добавляю следующее изменение, и оно отлично работает:
for cursor in collection.find().limit(10000):
try:
name = cursor['user']['name']
print name.encode('utf-8')
kloutId = k.identity.klout(screenName=name).get('id')
score = k.user.score(kloutId=kloutId).get('score')
print "User's klout score is: %s" % (score)
# By default all communication is not secure (HTTP). An optional secure parameter
# can be sepcified for secure (HTTPS) communication
k = Klout('...', secure=True)
# Optionally a timeout parameter (seconds) can also be sent with all calls
score = k.user.score(kloutId=kloutId, timeout=5).get('score')
counter = counter+1
except (KloutHTTPError, UnicodeEncodeError) as e:
print "Oops! That was no kloudId found with that name, or unicode exception. Try again... ", counter