#python
#python
Вопрос:
Я пытаюсь выполнить итерацию по списку сообщений Facebook, и я получаю следующую ошибку:
Ошибка типа: объект ‘list’ не вызывается
Вот мой код:
MCTOT_postIDs = [["126693553344_10155053097028345"],
["126693553344_10155050947628345"],
["126693553344_10155048566893345"],
["126693553344_10155044677673345"],
["126693553344_10155042089618345"],
["126693553344_10155035937853345"],
["126693553344_10155023046098345"]]
g = facebook.GraphAPI()
g.access_token = g.get_app_access_token(APP_ID, APP_SECRET)
for x in MCTOT_postIDs():
g.get_object('fields="message, likes, shares')
Я знаю, что где-то допускаю основную ошибку, но, похоже, не могу ее понять. Спасибо!
Комментарии:
1. Вам просто нужно
for x in MCTOT_postIDs:
2. Если вы ставите
()
после переменной, значит, вы пытаетесь вызвать ее как функцию. Как указано в ошибке, список нельзя вызвать. Так что отбросьте()
.3. Спасибо! Я внес рекомендуемое вами изменение, но теперь я получаю следующую ошибку: ошибка типа: get_object() отсутствует 1 требуемый позиционный аргумент: ‘id’
4. Эндрюсмит: Это другой вопрос об использовании API Facebook. Мы не можем отлаживать ваш код построчно с вами в Stack Overflow. Еще раз взгляните на документацию. Вероятно, вы также хотите использовать
x
значение в цикле (и иметь некоторый фактический код в цикле — при условии, что ваш отступ здесь показан правильно?). Если вы не можете понять это, потратив полчаса на чтение и пробуя что-то из документированных примеров, тогда отправьте другой вопрос, показывающий, что вы пробовали, и сосредоточьтесь на следующей ошибке.
Ответ №1:
Редактировать: Для другой ошибки функции g.get_object(…) требуется еще один аргумент, который вы не передаете. Вы передаете поля, но вы также должны передать идентификатор в качестве аргумента, вы должны передать x вашего цикла, который содержит идентификатор.
Вероятно, должно выглядеть так:
g.get_object('fields="message, likes, shares', x)
или, может быть
g.get_object('fields="message, likes, shares', x[0])
если вам нужно передать его в виде строки, а не массива (ваш список представляет собой список массивов)
но это должно быть темой для нового вопроса…
В сообщении об ошибке говорится:
TypeError: 'list' object is not callable
Итак, посмотрите еще раз на свой код: когда вы пытаетесь выполнить for … в цикле вы пытаетесь вызвать свой список, как если бы это была функция.
Вы делаете
for x in MCTOT_postIDs():
Когда вы должны делать
for x in MCTOT_postIDs:
Список не вызывается, а функция () используется для вызова функции (что означает: выполнение функции). Удалите его, и он должен работать.