【发布时间】:2014-07-25 03:43:45
【问题描述】:
我正在使用 Twitter API,但我有几个关于土耳其字符编码的问题。这是我正在使用的代码:
# -*- coding: cp1254 -*-
import sys
import csv
import tweepy
import locale
import string
locale.setlocale(locale.LC_ALL, "Turkish")
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)
f=open("tweets.csv", "wb")
for q in [list of search queries]:
a=[tweet.text.encode("utf-8") for tweet in tweepy.Cursor(api.search, q, result_type="recent", include_entities=True, lang="tr").items(20)]
wr=csv.writer(f, quoting=csv.QUOTE_ALL)
wr.writerow(q)
基本上,我正在做的是通过遍历搜索查询列表然后将推文写入 excel 文件来运行搜索 api。但是,无论我做什么,推文都是通过用其他替代品替换常规土耳其字符来编写的。我已经尝试了几件事(设置语言环境、添加 .encode("utf-8") 部分等),但我仍然不知道如何修复它。
这就是我要说的:
写的是什么:Dün akÅŸam Ülker Arena
我希望它写的内容:Dün akşam Ülker Arena
我不明白的是,当我将语言环境设置为土耳其语时,ü、Ü 和 ş 都在本地字母中,但是 Python 替换了这些字母。
【问题讨论】:
-
您是在查看 csv 文件以查看写入的内容吗?我认为您需要一个支持 utf 的文件查看器才能看到正确的土耳其语字符。
-
是的,我正在使用 Excel 来查看 csv 文件。我只是手动将土耳其语字符输入 Excel,然后将其保存为 csv 文件。当我再次打开它时,“ü”字符仍然存在,但“ş”字符已被替换为“?”。由于“ü”是在我手动执行时维护的,Python 不应该也是这样吗?
-
我曾经遇到过类似的问题,但没有费心去解决它。尝试使用 python 程序读取它,该程序解码文件中的文本并将输出显示到显示框或其他东西。请记住,命令提示符和许多其他控制台无法输出 unicode 字符。许多IDE都可以做到。我认为 Excel 在显示 utf 字符时确实存在问题。
标签: python twitter tweepy turkish