【发布时间】:2021-06-25 23:02:59
【问题描述】:
我正在尝试将 .txt 文件中的数据插入 SQLite 数据库,但每当我运行我的代码时,我都会收到此错误:NameError: name 'get_value' is not defined。这是因为我试图在类内部的函数中调用函数吗?我没有包含我的代码的其他部分,因为我认为它们不是必需的,但是如果需要,请告诉我,我会添加它。
Python 文件:
class InputFromIPLog:
...
def get_value():
info = item.strip().split(':')
val = info[1].strip().split(',')
return val[0].strip()
def insert_data():
with open(f"new_iplog.txt", "r") as f:
file_data = f.readlines()
input_gamertag = ""
input_ip_address = ""
input_xuid = ""
input_mid = ""
for item in file_data:
if "Gamertag" in item:
input_gamertag = get_value(item)
elif "IP Address" in item:
input_ip_address = get_value(item)
elif 'XUID' in item:
input_xuid = get_value(item)
elif 'MID' in item:
input_mid = get_value(item)
cursor.execute("INSERT INTO userinfo (gamertag, ip, xuid, mid) values(?, ?, ?)", (input_gamertag, input_ip_address, input_xuid, input_mid,))
...
new_iplog.txt 文件:
...
Gamertag: UnknownUser
IP Address: 10.0.0.1
XUID: 000301F23B9F6ED4
MID: FB00FDA037CEB46E
Gamertag: AnotherUnknownUser
IP Address: 1.1.1.1
XUID: 0009000005E96E9B
MID: FB00F5413910FEDD
...
【问题讨论】:
-
我找不到骗子,但肯定存在,所以我不会发布答案。您需要
self.get_value来引用该方法。方法名称本身不在范围内。您需要在类的实例上显式调用该方法(在这种情况下为self)。 -
This 是一个解释它的骗子,但这是一个可怕的骗子。