Twitter趋势列表打印第一个字符而不是第一个字符

时间:2015-09-29 22:03:49

标签: python python-2.7 twitter

我遇到了一个问题,我可以通过Twitter API为我提供给定区域中热门话题的前10个列表,但我只能打印完整版或第一个要打印的字符,但是不是列表中的第一个条目。

以下代码是我尝试只打印列表中的第一个条目(条目0)但我得到的每个列表条目的第一个字符(字符0)。

from twitter import *

access_token = "myaccesstoken"
access_token_secret = "myaccesstokensecret"
consumer_key = "consumerkey"
consumer_secret = "consumersecret"

t = Twitter(auth=OAuth(access_token, access_token_secret, consumer_key, consumer_secret))

results = t.trends.place(_id = 2442047)
#I used the Los Angeles WOEID

for location in results:
    for trend in location["trends"]:
        trendlist = trend["name"]
        print trendlist[0]

如果我只使用这样的简单列表,我可以让Python只打印第一个条目:

trendlist = ['one', 'two', 'three']
print trendlist[0]

任何人都可以提供一个指针,说明为什么这种行为不同,以及如何从趋势列表中获取一个条目进行打印?

谢谢!

1 个答案:

答案 0 :(得分:2)

趋势api会返回如下内容:

"trends": [
      {
        "events": null,
        "name": "#GanaPuntosSi",
        "promoted_content": null,
        "query": "%23GanaPuntosSi",
        "url": "http://twitter.com/search/?q=%23GanaPuntosSi"
      }...]

使用第二个for循环,您将遍历上述每个趋势“对象”。

    trendlist = trend["name"]

不会为您提供列表,而是趋势名称。

   print trendlist[0]

打印出名字的第一个字母。

只需打印趋势[“名称”]即可完成。

这是给你https://repl.it/BLww/1的一点点repl.it。您正在打印所有10个,因为您正在遍历它们。如果您只想打印第一个,可以这样做:

for location in results:
    print location["trends"][0]['name']