Python Facebook 'NoneType object error'

标签 python facebook python-2.7

我是编程和Python新手。我在下面编写了此脚本,但收到“TypeError:'NoneType'对象不可迭代”

import csv
import json
import urllib
import sys
import time
import re

class FacebookSearch:
    def __init__(self,
        query   = '"https://graph.facebook.com/search.{mode}?{query}&{access_token}'
    ):
        access_token = 'XXXXX|XXXXX'

    def search(self, q, mode='json', **queryargs):
        queryargs['q'] = q
        query = urllib.urlencode(queryargs)


def write_csv(fname, rows, header=None, append=False, **kwargs):
    filemode = 'ab' if append else 'wb'
    with open(fname, filemode) as outf:
        out_csv = csv.writer(outf, **kwargs)
        if header:
            out_csv.writerow(header)
        out_csv.writerows(rows)

def main():
    ts = FacebookSearch()
    response, data = ts.search('appliance', result_type='recent')  #I am getting the error on this line
    js = json.loads(data)



    messages = ([msg['created_time'],  msg['id']] for msg in js.get('data', []))

    write_csv('fb_washerdryer.csv', messages, append=True)

if __name__ == '__main__':
    main()

我不确定为什么在为图形 API 定义搜索词的行上会收到“TypeError: 'NoneType' object is not iterable”。

最佳答案

FacebookSearchsearch 方法末尾添加返回查询。您实际上要求它解压当前返回的 searchNone 。当函数没有显式定义的return时,它默认返回None

>>> response, data = None
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable

关于Python Facebook 'NoneType object error',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20862043/

相关文章:

python - 为什么交换可以以一种方式进行,但不能以另一种方式进行?

python - 仅使用标准库将 curl POST 请求转换为 Python

python - ElementTree find()/findall() 找不到带有命名空间的标签?

python - 无法导入evernote.api.client(evernte sdk)

javascript - 使用 FBJS 进行表单验证

python - Matplotlib 中 x 轴标签的频率和旋转

python - 为什么当我交换 url 模式成员的顺序时错误会有所不同

php - 使用php在twitter上分享图片

php - 如何获得长期的 Facebook session ?

python-2.7 - 如何在vs代码中为python2和python3配置pylint