Я пытаюсь извлечь текст, долготу и широту из tweepy StreamListener, а затем сохранить данные в моей базе данных SQL. Я могу хранить координаты в порядке, но по какой-то причине unicode не работает. Для SQL у меня есть:Вставка юникода в базу данных MySQL из сценария python
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
Пожалуйста, обратите внимание, что я новичок так что любой совет ценится.
Попробуйте запустить 'SET NAMES UTF8;' в оболочке MySQL. –
ALTER TABLE tweets CONVERT TO CHARACTER SET utf8mb4 – MONTYHS
Как сказал @MONTYHS, просто измените таблицу, чтобы принять unicode. Его данные и ваша база данных, поэтому просто изменить базу данных, чтобы принять unicode, на сегодняшний день является самым простым и самым правильным решением, на мой взгляд, для вашей ситуации. Этот раздел, известный как «кодировка строк», может быть подавляющим для разработчиков. Не подвешивайте их на начальном уровне. Обратите внимание: вы можете использовать MySQL Workbench в качестве графического интерфейса для управления администрированием и таблицей. Это может быть очень удобно. – Dan