TypeError: addRecord() missing 1 required positional argument: 'val9'
TypeError: addRecord() missing 1 required positional argument: 'val9'
我想使用 psycopg2 将我的数据插入到 PostgreSQL。
我创建了这样的 addRecord 定义:
def addRecord(self, val1, val2, val3, val4, val5, val6, val7, val8, val9):
query = """
INSERT INTO stories (
val1,
val2,
val3,
val4,
val5,
val6,
val7,
val8,
val9)
VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s)"""
self.cursor.execute(query, (val1, val2, val3, val4, val5,val6, val7, val8, val9))
self.connection.commit()
我这样称呼这个 addRecord 定义:
print("Val9 value is " + val9) ===============================>>>>>IT'S WORKING
DatabaseConnection.addRecord(
val1,
val2,
val3,
val4,
val5,
val6,
val7,
val8,
val9)
这样的输出:
Val9 value is 12345asdas
...
...
TypeError: addRecord() missing 1 required positional argument: 'val9'
为什么我会收到这个错误?我该如何解决?
你的addRecord()
好像不是class方法,所以self
变成了普通参数。删除它,因为有10个参数,而val1成为自变量的值。
您的 addRecord
方法引用 self
(self.cursor
& self.connection
),通常是 instance 变量。您已使用 DatabaseConnection.addRecord(...)
调用了 addRecord。很可能需要 DatabaseConnection().addRecord(...)
→ 注意 DatabaseConnection
之后的括号。这只有在您的 class __init__()
已经具有创建连接所需的默认值时才有效。
通常,它应该是这样的:
conn = DatabaseConnection()
conn.addRecord(...)
conn.addRecord(...)
# etc.
我想使用 psycopg2 将我的数据插入到 PostgreSQL。
我创建了这样的 addRecord 定义:
def addRecord(self, val1, val2, val3, val4, val5, val6, val7, val8, val9):
query = """
INSERT INTO stories (
val1,
val2,
val3,
val4,
val5,
val6,
val7,
val8,
val9)
VALUES(%s, %s, %s, %s, %s, %s, %s, %s, %s)"""
self.cursor.execute(query, (val1, val2, val3, val4, val5,val6, val7, val8, val9))
self.connection.commit()
我这样称呼这个 addRecord 定义:
print("Val9 value is " + val9) ===============================>>>>>IT'S WORKING
DatabaseConnection.addRecord(
val1,
val2,
val3,
val4,
val5,
val6,
val7,
val8,
val9)
这样的输出:
Val9 value is 12345asdas
...
...
TypeError: addRecord() missing 1 required positional argument: 'val9'
为什么我会收到这个错误?我该如何解决?
你的addRecord()
好像不是class方法,所以self
变成了普通参数。删除它,因为有10个参数,而val1成为自变量的值。
您的 addRecord
方法引用 self
(self.cursor
& self.connection
),通常是 instance 变量。您已使用 DatabaseConnection.addRecord(...)
调用了 addRecord。很可能需要 DatabaseConnection().addRecord(...)
→ 注意 DatabaseConnection
之后的括号。这只有在您的 class __init__()
已经具有创建连接所需的默认值时才有效。
通常,它应该是这样的:
conn = DatabaseConnection()
conn.addRecord(...)
conn.addRecord(...)
# etc.