2012-07-04 45 views
0
import twitter 
import unicodedata 
import string 


def get_tweets(user): 

    resultado=[] 
    temp=[] 
    api=twitter.Api()# 
    statuses=api.GetUserTimeline(user) 
    for tweet in statuses: 
     var = unicodedata.normalize('NFKD', tweet.text).encode('utf-8', 'replace') 
     print var# Horóscopo when i dont append it 
     resultado.append(var) 
     print resultado# Horo\xcc\x81scopo, mie\xcc\x81rcoles i get these when i append them 


get_tweets('HoroscopoDeHoy') 
+0

我不能在我的機器上運行,所以...我不知道你在找什麼。 –

+0

Python 2或3?字符串/ unicode在兩者之間是不同的。 – vossad01

+0

你還可以添加'print resultado [0]'這一行嗎? –

回答

0

我假設你希望把統一到一個列表:

var = unicodedata.normalize('NFKD', tweet.text) 
    resultado.append(var) 
    temp.append(var.encode('utf-8', 'ignore')) 
+0

其python 2.7。在排除這兩行之後:var = unicodedata.normalize('NFKD',tweet.text) var.encode('utf-8','replace')我得到這些輸出Horóscopo和單詞的口音,我想追加那些帶有口音的單詞會導致結果,但是當我追加它們時,我會得到這個Horo \ xcc \ x81scopo如何將它附加到重音符中? – user1502319

+0

從頭開始評論。它的python 2.7。執行這兩行後:var = unicodedata.normalize('NFKD',tweet.text).encode('utf-8','replace') print var並且我得到了這些輸出Horóscopo帶有口音的單詞,我想將這些帶有重音的單詞附加到結果中。但是當我執行其他兩個語句resultado.append(var) print resultado我得到這個Horo \ xcc \ x81scopo我怎麼能附加它的重音? – user1502319

+0

這很奇怪。 –

0

我認爲這個問題是與打印命令。 Print將字符串轉換到列表中,在將其寫入標準輸出之前轉義任何「有趣」的字符。如果你想在同一行顯示每個項目,我會建議做:

for item in resultado: 
    print item, 

這應該繞過列表上的字符串轉換。

來源: http://docs.python.org/reference/simple_stmts.html#the-print-statement http://docs.python.org/reference/expressions.html#string-conversions

+0

作爲一個附註,存儲在列表中的值仍然應該是unicode字符串。您正在看到的唯一變化是在顯示時發生。 (正如Marco de Wit上文所述) –