2015-10-07 60 views
-1

我正在使用Twitter的Streaming API,並且我收到了json類型的結果,我通過Python將其導入到mongoDb數據庫中以執行查詢。從查詢結果中,我想出了一個文本文件,其中包含用戶標識和鳴叫消息的文本。形式如下:在python中分割推文,由Twitter Streaming API收到

u'"#Fishing on the #Euphrates": http://t.co/sA1uGz8c2g. The shocking power of normality in #IS #propaganda, from @charliewinter @QuilliamF': 651322435355181056L, 

我想隔離文本部分和user_id。理想情況是一個python實現,它將生成一個包含兩個條目的列表。

list[0] = #Fishing on the #Euphrates": http://t.co/sA1uGz8c2g. The shocking power of normality in #IS #propaganda, from @charliewinter @QuilliamF 

list[1] = 651322435355181056L 

我是Python初學者,我非常感謝任何幫助!我已經嘗試了split()方法,但我無法理解如何將整個句子放在一起並刪除任何標點符號。謝謝!

回答

0

將文本文件的行讀入字符串中,然後使用split方法。這隻有在字符串一致並且用戶標識總是由相同的字符(在本例中爲冒號(:))分隔的情況下才起作用。

其中

inP = str(u'"#Fishing on the #Euphrates": http://t.co/sA1uGz8c2g. The shocking power of normality in #IS #propaganda, from @charliewinter @QuilliamF': 651322435355181056L) 

list = inP.split(:) 

這會給你兩個值。

list[0] = u'#Fishing on the #Euphrates": http://t.co/sA1uGz8c2g. The shocking power of normality in #IS #propaganda, from @charliewinter @QuilliamF 
list[1] = 651322435355181056L 

那麼你可以使用替換法:

rep = ['.',','] etc. 
for i in rep: 
list[0] = list[0].replace(i, '') 

可能有一個更快的方法。

希望幫助:)

+0

感謝您的幫助! – idimi

0

要由冒號分割字符串,你必須給結腸作爲參數傳遞給分割功能:

inputStr = str(u'"#Fishing on the #Euphrates": http://t.co/sA1uGz8c2g. The shocking power of normality in #IS #propaganda, from @charliewinter @QuilliamF': 651322435355181056L) 

inputStrSplit = inputStr.split(":") 

從第一個元素刪除標點您的清單使用:

import string 
outputStr = inputStrSplit[0].translate(string.maketrans("",""), string.punctuation) 
+0

@ ivanab感謝您的幫助! – idimi