Ошибка при попытке назначить объект blob - PullRequest
1 голос
/ 25 марта 2011

Следующий код

for h in hits:
    urls.append(h['url'])
    result = db.Blob(urlfetch.Fetch(h['url']).content)
    model.image = result

возвращает ошибку

невозможно объединить объекты 'str' и 'NoneType'.

Ответы [ 2 ]

0 голосов
/ 25 марта 2011

Я вижу объединение только в этой строке:

urls.append(h['url'])

судя по ошибке: «String» будет URL-адресом, а «NoneType» будет h ['url'] Скорее всего, h ['url'] пуст. Убедитесь в этом, напечатав его на консоли.

0 голосов
/ 25 марта 2011

Используйте некоторую отладочную печать, чтобы узнать, возвращает ли urlfetch.Fetch(h['url']).content хоть что-нибудь. Исходя из ошибки, результат равен None, а db.Blob() ожидает, что результатом будет строка.

Если это так, составьте план, проверив значение content, прежде чем пытаться применить его. А может быть, небольшое отслеживание ошибок для хорошей меры?

Вот простой пример:

errors = []
for h in hits:
    urls.append(h['url'])
    content = urlfetch.Fetch(h['url']).content
    if content is not None:
       result = db.Blob(urlfetch.Fetch(h['url']).content)
    else:
       print 'No content for', h['url']
       errors.append(h)
       continue

    model.image = result
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...