gpt4 book ai didi

python - str 对象在插入 SQLite 数据库时不可调用

转载 作者:行者123 更新时间:2023-11-28 21:14:59 25 4
gpt4 key购买 nike

我正在使用在 Raspberry Pi 2 上运行的单线温度传感器开发温度传感器网络。我正在关注 this tutorial在进行过程中,我意识到他的设置适用于一个温度传感器,而我的设置需要使用多个传感器。

由于拥有多个传感器,我还需要能够区分传感器。为此,我希望在 SQLite 表中有 3 列。我在执行应该记录传感器读数、日期和时间以及传感器名称的 Python 脚本时遇到错误。

问题是,当我配置 python 脚本以将三个值写入表时,出现错误。

这是我在执行时遇到错误的代码

#!/usr/bin/env python

import sqlite3

import os
import time
import glob

# global variables
speriod=(15*60)-1
dbname='/var/www/templog.db'

# store the temperature in the database
def log_temperature(temp):

conn=sqlite3.connect(dbname)
curs=conn.cursor()
sensor1 = 'Sensor1'

curs.execute("INSERT INTO temps values(datetime('now'), (?,?))" (temp, sensor1))

# commit the changes
conn.commit()

conn.close()

最佳答案

"INSERT INTO temps values(datetime('now'), (?,?))" (temp, sensor1)

分解它你会看到这创建了一个字符串,然后括号对 Python 来说是一个函数调用。然而,这是荒谬的,因为您有一个字符串,您正试图调用它,就像它是一个函数一样。因此你会得到关于 str 不可调用的错误,如果你没有使用 Python 的经验,这肯定有点神秘。本质上你缺少一个逗号:

curs.execute("INSERT INTO temps values(datetime('now'), (?,?))", (temp, sensor1)) 

现在您将正确填写 ? 占位符。

str is not callable”错误通常是拼写错误造成的,比如这个或重复的变量名(你认为你正在调用一个函数,但变量实际上包含一个字符串),所以当您看到此类错误时,请先查找这些问题。

关于python - str 对象在插入 SQLite 数据库时不可调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30825273/

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