我正在玩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)
.

基本上,我正在做的是通过搜索查询列表迭代来运行搜索API,然后将推断写入Excel文件。但是,无论我做什么,推文都是通过用其他替代品替换常规土耳其人物来编写的。我尝试了几件事(设置了语言环境,添加.encode(“UTF-8”)部分等),但我仍然不知道如何修复它。

这是我在谈论的:

写的是什么:dänakåÿamälkerarena

我想要它写作:dünakşamÜlkerarena

我不明白的是,当我将区域设置设置到土耳其语时,ü,ü和ş都在本地字母中,但Python替换这些字母。

有帮助吗?

解决方案

我在我的系统上重复了你的代码(Windows 7,带Office 2010),我已经工作了。我使用了你的代码,但我简化了搜索查询,如下所示:

search_results = api.search(q="canan1405", count=10)
for tweet in search_results:
    print tweet.text.encode('utf-8')
.

我从“Canan1405”用户中拉了推文,因为它们包含土耳其角色。 (希望她不介意!)

我只是将脚本的输出重定向到文件,如下所示:

python so_24038317.py> tweets.csv

此时,Tweets.csv文件包含编码为UTF-8的Unicode字符。如果我按照自己双击该文件,默认的Excel显示屏会显示垃圾字符在案例中非常相似:

而不是双击csv文件,请使用以下步骤导入文件:

  1. 启动Excel。
  2. 单击功能区上的“数据”选项卡。
  3. 单击“获取外部数据”中的“来自文本”图标。
  4. 找到CSV文件,然后单击“导入”按钮。
  5. 将显示一个向导。在我的情况下,它提出了文件内容的正确猜测(请参阅“文件原产地:”下拉):
  6. 您可以完成向导的其余步骤,但它们是可选的。该文件正确显示:

    据我所知,它包含(并正确显示)以下土耳其字符:

    ş, Ğ, İ, ğ, ı, ç

    请注意,字符串“oyyşirinkedi”之后的字符是一个表情符号,而不是有效的UTF-8字符。希望这有助于。

其他提示

使用iso-8859-9iso-8859编码以具有土耳其字符。

编辑: 如果要绝对编码UTF8,请解码和编码 您可以执行此生成icoticetagcode

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top