为什么我的字典会被截断?

时间:2014-07-05 17:00:33

标签: python dictionary truncate

我的字典必须列出一个Twitter用户ID和一个屏幕名称(通过tweepy收集。

两个列表都是正确的,但是当我尝试将它们压缩到字典中时,屏幕名称会被截断。

条目如下所示:

189754969: u'l'

这里的名字打印得恰到好处:

AngelicaNUnga
JoeChevrette
sillyfaceee

这是引用字典的代码:

 def paginate(iterable, page_size):#functional but needed to make the other def work
     while True:
         i1, i2 = itertools.tee(iterable)
         iterable, page = (itertools.islice(i1, page_size, None),
            list(itertools.islice(i2, page_size)))
         if len(page) == 0:
             break
         yield page



 def get_followers(target):
      target_following_users = {}

      followers = []
      screen_n = []

      for page in tweepy.Cursor(api.followers_ids, screen_name=target).pages():#gets the followers for userID
          followers.extend(page)
          time.sleep(60)#keeps us cool with twitter

      for page in paginate(followers, 100):#see paginate 
          results = api.lookup_users(user_ids=page)
          for result in results:
                print result.screen_name
                screen_n.extend(result.screen_name)

      target_following_users.update(zip(followers, screen_n))

      return target_following_users

  print get_followers(target)

问题似乎在于我如何创建我的字典,但我无法弄清楚为什么它会截断。我真的很想使用词典来简化,而不仅仅是返回两个列表。

1 个答案:

答案 0 :(得分:4)

如果没有实际看到此项运行,您似乎正在使用如下列表扩展screen_n列表:

['u','s','e','r'] 

因为屏幕名称是一个字符串而您正在使用extend(将参数列表中的项追加到调用extend的列表中)。你可能想要screen_n.append(results.screen_name)

例如,

>>> a = range(3)
>>> a.extend(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>> a.extend('45')
>>> a
[0, 1, 2, '4', '5']