当我尝试从数据库中的特定位置返回该值并将该值存储到文本文件时,出现以下错误:

 Argument must be a string or a number, not 'ResultProxy'.


int(expire)和str(expire)不会转换'ResultProxy'。

 def expire():
      today = datetime.date.today()
      day = today.strftime('%d %b %y')
      conn = engine.connect()
      sql = text('select account.expire from account where account.user_name = "%s"'%('Bob'))
      expire = conn.execute(sql)
      filename = 'mysite/expiry.txt'
      read = open(filename, 'r')

      target = open(filename, 'w')
      target.truncate()
      target.write(str(expire))
      target.write("\n")
      target.close()

      read = open(filename, 'r')
      daysleft = read

 return render_template('expire.html', daysleft=daysleft)


如何将ResultProxy转换为字符串?

最佳答案

执行查询总是返回行列表,在SQLAlchemy的情况下为ResultProxy。您正在尝试将此结果对象写入文件,而不是实际结果。由于看起来您只期望得到一个结果,因此请确保要写入一个结果。

results = conn.execute(sql)

if results:
    expire = results[0]
    # write it to the file


或者,如果您期望多个结果,请遍历它们。

results = conn.execute(sql)

for expire in results:
    # write it to the file

关于python - 如何将ResultProxy更改为字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32297359/

10-09 12:45