def get_user_info(user_id,info_type,u_access_token = None):
if info_type == "user_friends":
params = r"friends"
elif info_type == "user_likes":
params = r"likes"
elif info_type == "user_feed":
params = r"feed?
fields=permalink_url,from,story,type,message,link,created_time,updated_time,likes.limit(0).summary(total_count),comments.limit(0).summary(total_count)"
# To get the access token
if u_access_token:
FB_access_token = u_access_token
else:
FB_access_token = get_access_token.get_fb_token(glovar.APP_ID, glovar.APP_SECRET)
graph = facebook.GraphAPI(FB_access_token)
user_info = graph.get_connections(user_id, params)
if "Error" in user_info:
print("Error", user_info["Error"]["message"])
return []
user_info_data = []
while(user_info["data"]):
if "Error" in user_info:
print("Error", user_info["Error"]["message"])
return []
if "data" in user_info:
try:
for user_info_item in user_info["data"]:
if info_type == "user_feed":
# Convenience:Add empty field for message/link if not existent
user_info_item["message"] = user_info_item["message"] if "message" in user_info_item else ""
user_info_item["link"] = user_info_item["link"] if "link" in user_info_item else ""
user_info_data.append(user_info_item)
user_info = requests.get(user_info["paging"]["next"]).json()
elif info_type == "user_friends" or "user_likes":
user_info_data.append(user_info_item)
#if only one page or in the last page, ["paging"]["cursors"]["after"] is unrecognized code
if "https://graph.facebook.com" in user_info["paging"]["cursors"]["after"]:
user_info = requests.get(user_info["paging"]["cursors"]["after"]).json()
except KeyError:
break
print(user_info_data)
Питон программа хочет получить информацию могут facebook счета, например, моих друзей, любит, кормить ... но работает он выдает ошибку:MemoryError при попытке добавить
Traceback (most recent call last):
File "C:/Python/PyCharmProject/FaceBookCrawl/FBCrawl.py", line 254, in <module>
user_info_download.get_user_info(user_id,user_info_type,u_access_token)
File "C:\Python\PyCharmProject\FaceBookCrawl\user_info_download.py", line 51, in get_user_info
user_info_data.append(user_info_item)
MemoryError
Process finished with exit code 1
Это указывает на :
elif info_type == "user_friends" or "user_likes":
user_info_data.append(user_info_item)
как утверждение вызывает MemoryError
. Пожалуйста, скажите мне, почему и как его исправить.
Похоже, что у скрипта заканчивается память. Однако в вашем вопросе недостаточно информации, чтобы сказать, почему. [_Как отлаживать небольшие программы_] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/) может помочь вам разобраться в причине. – martineau
Вы используете 32-битную установку python? Или с помощью 32-битного компьютера? Эта ошибка означает, что вы потеряли память. –