【问题标题】:TypeError: 'datetime.datetime' object is not iterable [duplicate]TypeError:'datetime.datetime'对象不可迭代[重复]
【发布时间】:2015-10-23 08:52:52
【问题描述】:

我正在编写一个 python 脚本,该脚本访问一个 API,然后将各种数据写入 MySQL 数据库。

我正在尝试编写的字段之一是日期对象,但我一直遇到“TypeError: 'datetime.datetime' 对象不可迭代”错误并且似乎无法通过它。我确信这很简单,但我不知道是什么。

首先,我调用 API 来获取一个包含多个日期和指标的 json 对象。然后我遍历日期并尝试将它们写入数据库。

for day in results:

   mydate = datetime.datetime.strptime(day['date'], '%Y-%m-%d')

   print mydate

   date_query = "INSERT INTO sendgrid_stats (date) VALUES (%s)"

   cursor.execute(date_query, mydate)
   connection.commit()

如果您打印尝试插入的日期,它看起来像“2015-07-26 00:00:00”(不带引号)。

有谁知道我做错了什么?我的头撞在键盘上,脸疼。

【问题讨论】:

  • 什么是回溯?错误在哪一行?
  • Traceback(最近一次调用最后):文件“getdailystats.py”,第 25 行,在 cursor.execute(date_query, mydate) 文件“/usr/local/lib/python2.7 /site-packages/MySQLdb/cursors.py",第 187 行,在执行查询 = 查询 % tuple([db.literal(item) for item in args]) TypeError: 'datetime.datetime' object is not iterable
  • 我有完全相同的问题,但查询更改并没有解决。它只是来自文件的原始数据。任何想法如何解决这个问题?

标签: python mysql datetime


【解决方案1】:

您需要将查询参数作为可迭代对象传递。将其设为元组,例如:

cursor.execute(date_query, (mydate, ))

【讨论】:

  • 就是这样!谢谢。
猜你喜欢
  • 2018-11-26
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
  • 2021-12-05
  • 2013-09-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-27
相关资源
最近更新 更多