0
tweepy StreamListener에서 텍스트, 위도 및 위도를 검색하고 SQL 데이터베이스에 데이터를 저장하려고합니다. 좌표를 저장할 수 있지만 어떤 이유로 유니 코드가 작동하지 않습니다. 는 SQL에 대한 내가 가진 :Python 스크립트에서 MySQL 데이터베이스에 유니 코드 삽입하기
mysql> CREATE TABLE tweets (tweet nvarchar(140), lat float(10,6) not null, lng float(10,6) not null) engine=myisam;
내가 한 내 파이썬 스크립트 (포함하지 않는 주()) :
import mysql.connector
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
from authenticator import Authenticator
import json
#connecting to mysql database
conn = mysql.connector.connect(user='root', password='arlenyu123',host='localhost',database='twitter')
mycursor = conn.cursor()
class MyStreamListener(StreamListener):
def on_status(self, status):
if status.coordinates is not None:
#for some reason the status text isn't being fed into the database properly... not sure why.
mycursor.execute('INSERT INTO tweets (tweet, lat, lng) VALUES ({},{},{})'.
format(status.text, status.coordinates['coordinates'][0], status.coordinates['coordinates'][1]))
return True
def on_error(self, status_code):
if status_code == 403:
print("The request is understood, but it has been refused or access is not allowed. Limit is maybe reached")
return False
내가 지금 어떤 조언 감사합니다 초보자임을 유의하시기 바랍니다.
MySQL 쉘에서'SET NAMES UTF8;'을 실행하십시오. –
ALTER TABLE tweets 문자 집합으로 변환 utf8mb4 – MONTYHS
@MONTYHS에서 말했듯이 유니 코드를 허용하도록 표를 변경하십시오. 그것의 데이터와 데이터베이스, 그래서 유니 코드를 받아들이도록 데이터베이스를 변경하는 것은 당신의 상황에 대한 제 의견으로는 가장 간단하고 정확한 해결책입니다. "문자열 인코딩"이라고하는이 주제는 개발자에게 압도적 인 것일 수 있습니다. 초보자 수준에서 이것들에 매달 리지 마라. MySQL Workbench를 그래픽 프론트 엔드로 사용하여 관리 및 테이블 변경을 처리 할 수 있습니다. 매우 편리 할 수 있습니다. – Dan