Вопрос

Я экспериментирую с API Twitter, но у меня есть несколько вопросов относительно кодировки турецких символов.Вот код, с которым я работаю:

# -*- 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") и т. д.), но до сих пор не знаю, как это исправить.

Вот о чем я говорю:

что написано:Дун акшам Олкер Арена

что я хочу написать:Дюн Акшам Юлкер Арена

Чего я не понимаю, так это того, что все буквы ü, Ü и ş состоят из местных букв, когда я устанавливаю локаль на турецкий, но 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 содержит символы Unicode, закодированные как UTF-8. Если я дважды щелкнул файл, как вы сделали, дисплей Excel по умолчанию показывает символы мусора, как в вашем случае:

Вместо того, чтобы дважды щелкнуть в файле CSV, используйте следующие шаги для импорта файла:

  1. Старт Excel.
  2. Нажмите на вкладку «Данные» на ленте.
  3. Нажмите значок «из текста» в «Получить внешние данные».
  4. Найдите файл CSV и нажмите кнопку «Импорт».
  5. Волшебник будет отображаться. В моем случае он придумал правильное предположение для содержимого файла (см. «Происхождение файла:« Выпадающее):
  6. Вы можете выполнить остальные шаги для мастера, но они необязательны. Файл отображается правильно:

    Насколько я могу сказать, он содержит (и правильно отображает) следующие турецкие символы:

    ş, Ğ, İ, ğ, ı, ç

    Обратите внимание, что персонаж сразу после строки «Oyy şirin KEDI» - это смайлик, а не действительный символ UTF-8. Надеюсь, это поможет.

Другие советы

использовать iso-8859-9 или iso-8859 закодировать так, чтобы в нем были турецкие символы.

РЕДАКТИРОВАТЬ :Если вы хотите, чтобы UTF8 кодировал абсолютно, декодируйте и кодируйте после того, как вы сможете сделать это myString.decode('iso-8859-9').encode('utf8')

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top