推文中的逗号破坏了我的数据文件

时间:2018-03-03 10:08:07

标签: python api twitter streaming

我一直在使用这段代码,我遇到的问题是当我从Twitter API中提取时,逗号分隔我的CSV文件中的单元格。一些推文和Twitter给你的一些数据包含逗号,所以我的单元格最终会出现在不同的列上。例如,虽然一条推文的文本可能在第三列中,但另一条推文可能在第三列,第四列和第五列中。我需要一些方法来解决这个问题。

这是我的代码:

class listener(StreamListener):

    def on_data(self, data):
        # Check for a field unique to tweets (if missing, return immediately)
        if "in_reply_to_status_id" not in data:
            return
        with open("trump.csv", 'a') as saveFile:
            try:
                saveFile.write(json.dumps(data.replace(",",",")) + "\n")


            except (BaseException, e):
                print ("failed on data", str(e))
                time.sleep(5)
            return True
    def on_error(self, status):
        print (status)

1 个答案:

答案 0 :(得分:0)

首先,可以生成csv,使得引用块中的逗号被视为块的一部分,请参阅this post。 它有两个答案,一个使用双引号而另一个是倒置的,我不确定实际的是什么。

import csv

with open('trump.csv', 'rb') as inputfile:
    rows = csv.reader(inputfile, delimiter=',', quotechar='`')
    for row in rowreader:
        print row

如果这不适用,您需要完全删除文件中的逗号,请执行以下操作:

with open("trump.csv") as inputfile, open("output.csv", "w") as outputfile:
    for line in inputfile:
        outputfile.write(line.replace(",", ""))

或者您输入的任何内容都可以操作字符串并替换空格的逗号。