Ошибка типа: невозможно объединить объекты 'str' и 'builtin_function_or_method' в python - PullRequest
0 голосов
/ 16 марта 2012

Пожалуйста, я новичок в программировании на Python. Это мой код, и я не могу устранить ошибку. Кто-нибудь может подсказать мне, в чем проблема в коде на самом деле. заранее спасибо.

import urllib2
username = '<YOUR USERNAME>'
password = '<YOUR PASSWORD>'
format = 'json' # json or xml
filename = 'archive.json' # filename of the archive
tweets = 164 # number of tweets
pages = (int(float(tweets)/float(80)))+1
auth = urllib2.HTTPPasswordMgrWithDefaultRealm()
auth.add_password(None, 'http://twitter.com/account/', username, password)
authHandler = urllib2.HTTPBasicAuthHandler(auth)
opener = urllib2.build_opener(authHandler)
urllib2.install_opener(opener) 
i = 1
response = ''
print 'Downloading tweets. Note that this may take some time'
while i <= pages:
    request = urllib2.Request('http://twitter.com/statuses/user_timeline/account.' \
    + format + '?page=' + str(i))
    response = response + urllib2.urlopen(request).read()
    i = i + 1
handle = open(filename,"w")
handle.write(response)
handle.close()
print 'Archived ' + str(tweets) + ' of ' + username + \
'\'s tweets to ' + filename

ОШИБКА выглядит следующим образом:

**Traceback (most recent call last):
  File "<pyshell#14>", line 3, in <module>
    + format + '?page=' + str(i))
TypeError: cannot concatenate 'str' and 'builtin_function_or_method' objects**

1 Ответ

2 голосов
/ 16 марта 2012

format - встроенная функция. Ошибка, которую вы цитируете, является именно тем, что вы получите, если попытаетесь использовать + со встроенным format и строкой.

Ваше предыдущее назначение format = 'json' должно было скрыть встроенную функцию. Но ваша трассировка ошибок показывает, что вы запускаете это из какой-то оболочки, а не выполняете код, который вы опубликовали. Поэтому, не зная, что именно выполняется, я полагаю, что ваше назначение на format не действует по какой-либо причине.

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