You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python收集阿拉伯语推特并保存至CSV文件时的显示异常问题求助

解决阿拉伯语推特CSV显示异常的问题

嘿,我来帮你搞定这个阿拉伯语推特存CSV后显示异常的问题~这大概率是因为你手动对文本做了编码处理,导致CSV里存的是字节对象而非正常可读的字符串,咱们一步步修复:

问题根源

你代码里把tweet.full_text用encode('utf-8-sig')转成了字节格式,写入CSV后,打开时就会显示类似b'阿拉伯语文本'这样的怪异内容,自然会乱码或者显示异常。其实csv模块本身就能很好处理字符串,只要我们在打开文件时指定正确的编码就行。

修复后的完整代码

import tweepy
import csv

# Twitter API credentials
consumer_key = "..."
consumer_secret = ".."
access_key = "..."
access_secret = "...."

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)

# 打开文件时直接指定编码为utf-8-sig,用with语句更安全
with open('tweets.csv', 'a', newline='', encoding='utf-8-sig') as csvFile:
    csvWriter = csv.writer(csvFile)
    for tweet in tweepy.Cursor(api.search, q="اكتئاب", since="2021-01-30", truncated=False, tweet_mode="extended", count=1).items():
        if (not tweet.retweeted) and ('RT @' not in tweet.full_text):
            # 直接写入原始字符串,不需要手动编码
            csvWriter.writerow([tweet.full_text])

关键修改说明

  • 指定文件编码:用encoding='utf-8-sig'打开文件,这个编码带BOM头,能让Windows下的Excel等软件正确识别阿拉伯语这类非ASCII字符,避免乱码问题。
  • 移除手动编码操作:csv.writer会自动按文件指定的编码处理字符串,手动encode会把字节对象存进CSV,导致显示异常。
  • 改用with语句管理文件:这样能确保文件自动关闭,避免资源泄漏,比直接open文件的写法更规范可靠。

按这个修改后,你再打开CSV文件,阿拉伯语推特内容应该就能正常显示啦~

内容的提问来源于stack exchange,提问作者Reem Abdulrhman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 05:32:31