Ich versuche, den Text, die Länge und den Breitengrad von einem Tweepy StreamListener abzurufen und dann die Daten in meiner SQL-Datenbank zu speichern. Ich kann die Koordinaten gut speichern, aber aus irgendeinem Grund funktioniert der Unicode nicht. Für den SQL Ich habe:Einfügen von Unicode in MySQL-Datenbank aus Python-Skript
mysql> CREATE TABLE tweets (tweet nvarchar(140), lat float(10,6) not null, lng float(10,6) not null) engine=myisam;
Für meinen Python-Skript Ich habe (ohne den main()):
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
Bitte beachten Sie, dass ich ein Anfänger bin so wird jede Beratung geschätzt.
Versuchen Sie 'SET NAMES UTF8;' in der MySQL-Shell auszuführen. –
ALTER TABLE-Tweets KONVERTIEREN IN CHARAKTERSET utf8mb4 – MONTYHS
Wie @MONTYHS sagte, ändern Sie einfach die Tabelle, um Unicode zu akzeptieren. Es ist Ihre Daten und Ihre Datenbank, also ändern Sie einfach die Datenbank, um Unicode zu akzeptieren ist bei weitem die einfachste und korrekteste Lösung meiner Meinung nach für Ihre Situation. Dieses Thema, das als "String Encoding" bekannt ist, kann für Entwickler überwältigend sein. Lassen Sie sich nicht davon auf einem Anfänger Level hängen. Beachten Sie, dass Sie MySQL Workbench als grafisches Frontend zur Verwaltung und Änderung der Tabelle verwenden können. Es kann sehr praktisch sein. – Dan