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

标签 python mysql types mysql-connector-python

我有 8 种数据,我想使用 python 通过 mysql-connector 插入到 mysql 表中。 我看过一些文档说在使用mysql-connector时最好使用int, string, or 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[] 是数据列表,它们的范围是相同的。

  • 网址:网址。 我用元组设置这个就可以了。(可以成功存储)

  • 标题:一篇文章的标题。(即一个句子) 我试图将它设置为 (Title[i],) 的元组或 StringIO.String(Title[i]) 的字符串,但错误是

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

    分开。

  • 内容:几句话。 遇到和上面一样的问题

  • 月、日、年、时间、时区: 还没有尝试过,但我想我可以用元组类型导入这些数据?

我查看了 stackoverflow 并尝试了几种数据类型,但在这里仍然无法解决问题。我该如何处理这些数据,有人可以告诉我吗?

最佳答案

您将每个单独的参数包装在一个元组中;不要那样做。 也就是说,改为这样做:

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]))

您只需要将所有 替换值包装在一个 元组中,没有异常(exception)。

我明白您为什么感到困惑(“URL:url。我用元组设置它,它没问题。”):对于 DBAPI,单个 值也是在下面的示例中需要用 1 元组包装),但这仍然适用于此处的相同规则:

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

现在我们只替换URL,但我们仍然包装“all”,例如那个单一的论点,在一个元组中。

关于python - MySQLConverter' 对象没有属性 '_tuple_to_mysql' mysql-connector 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35910023/

相关文章:

python - 如何将字典转储到 JSON 文件?

python - 我将如何改善/使其运行更快?

mysql - 左连接上的 Concat 正则表达式

python - 使用 ast 和白名单使 python 的 eval() 安全?

Python, pygame 无法打开 chic.jpg

php - 使用Zend_Db查询MySQL数据库时出现"Syntax error"

php - PDO_mysql 不适用于doctrine2 和MAMP

python - 总结 np.array 或 np.float

Scala 类型参数不符合类型参数范围

PHP 属性作为对象