繁体   English   中英

从python脚本将unicode插入MySQL数据库

[英]Inserting unicode into MySQL database from python script

我正在尝试从扭曲的StreamListener检索文本,经度和纬度,然后将数据存储在SQL数据库中。 我能够很好地存储坐标,但是由于某些原因,Unicode无法正常工作。 对于SQL,我有:

mysql> CREATE TABLE tweets (tweet nvarchar(140), lat float(10,6) not null, lng float(10,6) not null) engine=myisam;

对于我的python脚本(不包括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

请注意,我是初学者,因此请提供任何建议。

永远不要使用字符串插值来创建SQL命令。 使用SQL连接器提供的参数替换。

 mycursor.execute('INSERT INTO tweets (tweet, lat, lng) VALUES (%s,%s,%s)',
                  (status.text, status.coordinates['coordinates'][0], status.coordinates['coordinates'][1]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM