python-MySQLConverter对象没有mysql-connector属性’_tuple_to_mysql’异常

我有8种数据,我想使用python通过mysql-connector插入到mysql表中.
我看过一些文档,说使用mysql-connector时最好使用int,string或tuple.
我试图将某些数据类型调整为字符串或元组,但是IDE一直显示错误.
如果有人,请帮助我弄清楚我将使用哪种数据类型.

数据结构设置如下(如果有什么更好的更改,请告诉我):

+----------+---------------+------+-----+---------+-------+
| Field    | Type          | Null | Key | Default | Extra |
+----------+---------------+------+-----+---------+-------+
| URL      | varchar(1023) | YES  |     | NULL    |       |
| Title    | varchar(1023) | YES  |     | NULL    |       |
| Content  | varchar(1023) | YES  |     | NULL    |       |
| Month    | varchar(1023) | YES  |     | NULL    |       |
| Date     | varchar(1023) | YES  |     | NULL    |       |
| Year     | varchar(1023) | YES  |     | NULL    |       |
| Time     | varchar(1023) | YES  |     | NULL    |       |
| TimeZone | varchar(1023) | YES  |     | NULL    |       |
+----------+---------------+------+-----+---------+-------+

我的代码如下:

for i in range(len(URL)):
    dbcur.execute(
        """INSERT INTO scripting (URL, Title, Content, Month, Date, Year, Time, TimeZone)
           VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")""",
           ((URL[i],), (Title[i],), (Content[i],), (Month[i],), (Date[i],), (Year[i],), 
           (Time1[i],), (TimeZone[i],)))
    dbcon.commit()

ps- URL [],Title [],Content [] … TimeZone []是数据列表,它们的范围是相同的.

> URL:URL.
我用元组设置它很好(可以成功存储)
>标题:论文标题(即句子)
我试图用(Title [i],)或使用StringIO.String(Title [i])将其设置为元组,但是错误是

MySQLConverter' object has no attribute '_tuple_to_mysql  
AttributeError: 'module' object has no attribute 'String'

分别.
>内容:几句话.
面临与上述相同的问题
>月,日期,年,时间,时区:
还没有尝试过,但是我想我可以用元组类型导入这些数据吗?

我查看了*并尝试了几种数据类型,但在这里仍然无法解决.有人可以让我知道如何处理这些数据?

解决方法:

您正在将每个单独的参数包装在一个元组中;不要那样做
也就是说,改为执行以下操作:

dbcur.execute(
     """INSERT INTO scripting (URL, Title, Content, Month, Date, Year, Time, TimeZone) 
     VALUES ("%s", "%s", "%s", "%s", "%s", "%s", "%s", "%s")""",
     (URL[i], Title[i], Content[i], Month[i], Date[i], Year[i], Time1[i], TimeZone[i]))

您只需要将所有替换值包装在一个元组中,没有例外.

我可以看到您为什么感到困惑(“ URL:url.我用tuple设置它,这很好.”​​):在下面的示例中,使用DBAPI时,单个值也需要包装在1-tuple中.仍然适用于此处的相同规则:

 dbcur.execute('INSERT INTO scripting (URL) VALUES (%s)', (URL,))

现在,我们仅替换URL,但仍将“全部”换行,例如一个元组中的单个参数.

上一篇:Javascript-我们如何键入一个类工厂,该工厂生成给定对象文字的类?


下一篇:java-使用Guice和DAO模式进行依赖注入