문제
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)
.
기본적으로, 내가하는 일은 검색 쿼리 목록을 반복 한 다음 Tweets를 Excel 파일에 쓰는 것으로 검색 API를 실행하는 것입니다.그러나 내가 무엇을하는 일이 있더라도, 짹짹은 정규 터키 문자를 다른 대체물로 대체하여 기록됩니다.나는 여러 가지를 시도했다 (로케일을 설정하여 .encode ( "utf-8") 부분 등을 시도했지만, 여전히 그것을 고치는 방법을 모른다.
여기에 내가 말하는 것입니다 :
쓰여진
ÃNGER ARENA
내가 원하는 것을 쓰고 싶습니다 : Dün Akşam Ülker Arena
내가 이해하지 못하는 것은 ü, ü 그리고 ş는 모두 터키어로 로케일을 설정할 때 로컬 편지에 있지만 파이썬은이 편지를 대체합니다.
해결책
I 시스템에 코드를 복제했습니다 (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로 인코딩 된 유니 코드 문자가 들어 있습니다. 파일을 두 번 클릭하면 기본 Excel 디스플레이에 다음과 같이 가비지 문자가 표시됩니다.
csv 파일을 두 번 클릭하는 대신 다음 단계를 수행하여 파일을 가져옵니다.
- 엑셀을 시작하십시오.
- 리본의 "데이터"탭을 클릭하십시오.
- "외부 데이터 가져 오기"에서 "텍스트에서"아이콘을 클릭하십시오.
- CSV 파일을 찾고 "가져 오기"버튼을 클릭하십시오.
- 마법사가 표시됩니다. 제 경우에는 파일 내용에 대한 올바른 추측이 나타났습니다 ( "파일 원본 :"드롭 다운) :
마법사에 대한 나머지 단계를 완료 할 수 있지만 선택 사항입니다. 올바르게 표시된 파일 :
내가 알 수있는 한, 다음과 같은 터키 문자가 들어 있고 (정확하게 표시)됩니다.
ş, Ğ, İ, ğ, ı, ç
문자열 "oyy şirin kedi"직후의 문자는 유효한 UTF-8 문자가 아닌 이모티콘입니다. 이것이 도움이되기를 바랍니다.
다른 팁
iso-8859-9
또는 iso-8859
encode를 사용하여 터키 문자가 있습니다.
편집 :
UTF8 인코딩을 절대적으로 원한다면 디코딩 및 인코딩
이 myString.decode('iso-8859-9').encode('utf8')