【问题标题】:Why is my dictionary truncated?为什么我的字典被截断了?
【发布时间】:2014-07-05 17:00:33
【问题描述】:

我的字典必须列出 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)

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

【问题讨论】:

  • 您的列表是什么样的?
  • 它们看起来是正确的,我抓了 3 个用户名并把它们贴在上面。
  • 所以当你在压缩之前打印关注者看起来不错?
  • 是的,我还从另一个工作功能中拉出了拉链线
  • no result.screen_name 是一个 tweepy 调用,可将 screen_name 从 JSON 结果中提取出来

标签: python dictionary truncate


【解决方案1】:

实际上没有看到此运行,您似乎正在使用这样的列表扩展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']

【讨论】:

  • 这就是为什么 OP 将 u'l' 视为值,而不是屏幕名称。
  • 是的,当你尝试非列表时,扩展通常会失败,比如整数,但在字符串的情况下;字符串只是一个字符列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-13
  • 1970-01-01
  • 2016-07-20
  • 2015-07-31
相关资源
最近更新 更多