2015-09-29 47 views
0

我遇到了一個問題,我可以通過Twitter API向我提供給定區域中前10個熱門主題的列表,但是我只能將整個打印或要打印的第一個字符,但不是列表中的第一個條目。Twitter趨勢列表打印第一個字符而不是第一個條目

下面的代碼是我試圖打印列表中的第一個條目(條目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] 

任何人都可以提供關於爲什麼這種行爲是不同的指針,如何公正從趨勢列表中獲取一個條目打印?

謝謝!

+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] 

打印出名稱的第一個字母。

只是打印趨勢[「名稱」],你就完成了。

這裏有一個小小的repl.it爲你https://repl.it/BLww/1。您正在打印所有10個,因爲您正在循環所有10個。如果你想打印只是第一個,你可以這樣做:

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

打印趨勢[「名稱」]給我的整個列表(10項)。你有關於如何獲得一個條目的建議嗎? – user3916272

相關問題