मैं एक टैब से अलग की गई फ़ाइल को पार्स कर रहा हूं जहां पहला तत्व एक ट्विटर हैशटैग है और दूसरा तत्व ट्वीट सामग्री है।

मेरी इनपुट फ़ाइल इस तरह दिखती है:

#trumpisanabuser    of young black men . calling for the execution of the innocent !url "
#centralparkfiv of young black men . calling for the execution of the innocent !url "
#trumppence16   "
#trumppence16   "
#america2that   @user "

और मेरा कोड डुप्लिकेट सामग्री जैसे कि रीट्वीट को यह जांच कर फ़िल्टर करना है कि दूसरा टैब से अलग किया गया तत्व डुप्लिकेट है या नहीं।

import sys
import csv

tweetfile = sys.argv[1]
tweetset = set()
with open(tweetfile, "rt") as f:
    reader = csv.reader(f, delimiter = '\t')
    for row in reader:
       print("hashtag: " + str(row[0]) + "\t" + "tweet: " + str(row[1]))
       row[1] = row[1].replace("\\ n", "").rstrip()
       if row[1] in tweetset: 
          continue  
       temp = row[1].replace("!url","")
       temp = temp.replace("@user","")
       temp = "".join([c if c.isalnum() else "" for c in temp])
       if temp: 
           taglines.append(row[0] + "\t" + row[1])
       tweetset.add(row[1])

हालांकि, पार्सिंग अजीब किया जाता है। जब मैं प्रत्येक पार्स किए गए आइटम को प्रिंट करता हूं, तो आउटपुट निम्न जैसा होता है। क्या कोई समझा सकता है कि पार्सिंग क्यों टूटती है और इस लाइन को प्रिंट करने का कारण बनती है (hashtag: #trumppence16 tweet:, न्यूलाइन, फिर #trumppence16)?

hashtag: #centralparkfive   tweet: of young black men . calling for the execution of the innocent !url "
hashtag: #trumppence16  tweet: 
#trumppence16   
hashtag: #america2that  tweet: @user "
0
pandagrammer 3 जिंदा 2017, 10:52
आपके पास फ़ाइल में समाप्त उद्धरण हैं
 – 
e4c5
3 जिंदा 2017, 10:53

1 उत्तर

सबसे बढ़िया उत्तर

आपके पास ट्वीट के लिए " के साथ लाइनें हैं। CSV, न्यूलाइन सहित, मान के आसपास " के साथ उन्हें उद्धृत करके उद्धृत कॉलम कर सकता है। ओपनिंग " से लेकर अगले क्लोजिंग " तक सब कुछ सिंगल कॉलम वैल्यू है।

आप quotingविकल्प सेट करके कोट प्रबंधन को अक्षम कर सकते हैं से csv.QUOTE_NONE:

reader = csv.reader(f, delimiter='\t', quoting=csv.QUOTE_NONE)
1
Martijn Pieters 3 जिंदा 2017, 10:59