Python 3.x 拆下b&x27;使用python的csv文件中的字符

Python 3.x 拆下b&x27;使用python的csv文件中的字符,python-3.x,Python 3.x,我从我的twitter API中检索推文,然后尝试将结果保存为csv文件。 以下是将其保存为csv文件的代码: csvFile = open('test55.csv', 'w', newline='') csvWriter = csv.writer(csvFile) csvWriter.writerow(['time', 'username', 'tweet']) for tweet in tweepy.Cursor(api.search,q="#covid19 -filter:ret

我从我的twitter API中检索推文,然后尝试将结果保存为csv文件。 以下是将其保存为csv文件的代码:

csvFile = open('test55.csv', 'w', newline='')
csvWriter = csv.writer(csvFile)
csvWriter.writerow(['time', 'username', 'tweet'])
for tweet in tweepy.Cursor(api.search,q="#covid19 -filter:retweets",count=500,
                           lang="in", tweet_mode='extended',
                           since="2021-02-27").items():
    print (tweet.created_at, tweet.user.screen_name, tweet.full_text)
    csvWriter.writerow([tweet.created_at, tweet.user.screen_name.encode('utf-8'),tweet.full_text.replace('\n',' ').encode('utf-8')])
csv文件中的结果: b'usersA' b'这里有一条关于新冠病毒-19的假文本,因为我不能分享推特结果,因为推特API政策'

我试着用jupyter笔记本对它进行文本预处理。为了删除b'前缀字符,我尝试对其进行解码,但python将其归类为str类型。所以,它没有做任何与b'前缀。 相反,我尝试使用正则表达式删除b'前缀字符。代码如下:

def remove_tweet_special(text):
    text = text.replace("b/'","")
data_tweet['tweet'] = data_tweet['tweet'].apply(remove_tweet_special)
这没有改变任何事情。但是,以下是结果示例: B由于Twitter API政策的原因,我无法分享推特结果,所以这里有一条关于新冠病毒-19的虚拟文本

有人能帮我用python 3删除b'前缀吗?

你的
。encode()
就是给你
b'
前缀的东西:


如果你想摆脱
b'

那为什么你要对它进行编码,如果这不是你想要的呢?如果不进行编码,我无法将它保存到csv文件中。它在某一点上给了我编解码器错误,但仍尝试了解更多信息。
b''
前缀是字节对象(字节字符串)的repr。只是不要将其编码(这也会将str转换为bytes对象)。csvFile以文本模式打开,因此需要
str
对象。在写入后试图删除它是错误的做法。我尝试了不使用.encode('utf-8'),但成功了,但这发生了:UnicodeEncodeError:“charmap”编解码器无法对37-40位置的字符进行编码:字符映射到它检索到的推文也较少我只是尝试不进行编码,结果发生了:UnicodeEncodeError:“charmap”编解码器无法对37-40位置的字符进行编码:字符映射到,我只检索到5条推文,当我使用.encode('utf-8)时,我检索到15-50条tweet。我认为没有。包含符号和表情符号的编码(utf-8)字符被过滤掉了
In [1]: my_string = "This is my string."
   ...: my_string
Out[1]: 'This is my string.'

In [2]: my_string.encode()
Out[2]: b'This is my string.'