gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:26:15 26 4
gpt4 key购买 nike

我有 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com